Rumah > hujung hadapan web > tutorial js > Contoh tutorial fungsi queue() dalam jQuery_jquery

Contoh tutorial fungsi queue() dalam jQuery_jquery

WBOY
Lepaskan: 2016-05-16 15:02:32
asal
1192 orang telah melayarinya

Jika objek jQuery semasa sepadan dengan berbilang elemen: apabila mendapatkan baris gilir, hanya dapatkan baris gilir pada elemen padanan pertama apabila menetapkan baris gilir (ganti gilir, tambah fungsi), tetapkannya secara berasingan untuk setiap elemen padanan.
Fungsi ini tergolong dalam objek jQuery (contoh). Jika anda perlu mengalih keluar dan melaksanakan fungsi pertama dalam baris gilir, gunakan fungsi dequeue(). Anda juga boleh menggunakan fungsi clearQueue() untuk mengosongkan baris gilir yang ditentukan.

Tatabahasa
Fungsi ini baharu dalam jQuery 1.2. Fungsi queue() mempunyai dua kegunaan berikut:

Penggunaan 1:

jQueryObject.queue( [ queueName ] [, newQueue ] )
Salin selepas log masuk

Jika tiada parameter dinyatakan atau hanya parameter queueName ditentukan, ini bermakna untuk mendapatkan baris gilir fungsi dengan nama yang ditentukan. Jika parameter newQueue ditentukan, ini bermakna baris gilir baharu newQueue digunakan untuk menetapkan (menggantikan) semua kandungan dalam baris gilir semasa.

Penggunaan 2:

jQueryObject.queue( [ queueName ,] callback )
Salin selepas log masuk

Menambah fungsi yang ditentukan pada baris gilir yang ditentukan (akhir).
Nota: Semua operasi tetapan bagi fungsi baris gilir() adalah untuk setiap elemen yang dipadankan dengan objek jQuery semasa semua operasi membaca hanya untuk elemen padanan pertama.

Parameter
Sila cari parameter yang sepadan berdasarkan nama parameter yang ditakrifkan dalam bahagian sintaks sebelumnya.
queueName: nama pilihan/Queue ditentukan oleh jenis String, lalai kepada "fx" (mewakili baris gilir kesan animasi standard dalam jQuery).
newQueue: Jenis pilihan/Array Baris baharu yang digunakan untuk menggantikan kandungan baris gilir semasa.
panggil balik: Fungsi yang ditentukan oleh jenis Fungsi akan dilampirkan pada baris gilir. Fungsi ini mempunyai parameter fungsi yang dipanggil untuk mengalih keluar dan melaksanakan fungsi pertama dalam baris gilir.

Nilai pulangan
Nilai pulangan bagi fungsi baris gilir() adalah daripada jenis Array/jQuery Jenis nilai pulangan bergantung pada sama ada fungsi baris gilir() semasa menjalankan operasi dapatkan atau operasi yang ditetapkan.
Jika fungsi baris gilir () melakukan operasi penetapan (menggantikan baris gilir, menambahkan fungsi), ia mengembalikan objek jQuery semasa itu sendiri jika ia adalah operasi mendapatkan semula, ia mengembalikan baris gilir (tatasusunan) fungsi yang diperolehi;
Jika objek jQuery semasa sepadan dengan berbilang elemen, apabila membaca data, fungsi queue() hanya menggunakan elemen padanan pertama.


Contoh:
1. jQuery memberikan kami fungsi queue() untuk memasukkan beberapa kod yang anda perlukan ke dalam baris gilir

$('#test-change1').toggle(function(){
  $('#test-object1').hide('slow').queue(function(next){
    $('#test-object1').appendTo($('#test-goal1'));
    next();
  }).show('slow');

},function(){
  $('#test-object1').hide('slow').queue(function(next){
    $('#test-object1').appendTo($('#test-origin1'));
    next();      
  }).show('slow');
});

Salin selepas log masuk

2. Barisan tersuai

$("div").queue("custom", function(next) {
  $('div').css({'background':'red'});
  next();
});
Salin selepas log masuk

Tetapi ini hanyalah kod ini Apabila anda benar-benar menambahkannya ke halaman web dan cuba menjalankannya, anda akan mendapati bahawa ia bukan "apa yang anda lihat ialah apa yang anda dapat" dan ia tidak akan memberi kesan sama sekali.

Selepas pengubahsuaian:

$("div").queue("custom", function(next) {
  $('div').css({'background':'red'});
  next();
})
.dequeue("custom"); //this is the key
Salin selepas log masuk

Takrifan umum dequeue() ialah "memadam fungsi teratas dalam baris gilir dan melaksanakannya". Saya tidak bersetuju dengan perkataan "padam", tetapi lebih suka "buang". Sebenarnya, fungsi fungsi ini adalah seperti penunjuk kepada baris gilir dalam struktur data Selepas fungsi sebelumnya dalam baris gilir dilaksanakan, yang terakhir fungsi barisan dikeluarkan fungsi di bahagian atas.

3. baris gilir: palsu

$("#object")
.delay(1000, "fader")
.queue("fader", function(next) {
  $(this).animate({opacity: 0},
    {duration: 1000, queue: false});
  next();
})
.dequeue("fader")
.animate({top: "-=40"}, {duration: 2000})
Salin selepas log masuk

Dalam 1000 milisaat pertama, hanya baris gilir "fx" yang mengawal ketinggian dilaksanakan, dan kemudian dalam 1000 milisaat seterusnya, baris gilir "fader" yang mengawal kelegapan dan "fx" yang mengawal ketinggian akan dilaksanakan selari. Keselarian di sini ialah queue:false

$('#section3a').slideUp(1000)
      .slideDown(1000)
      .animate({width: '50px'}, {duration: 1000, queue: false});
Salin selepas log masuk

4. Dapatkan panjang giliran
Sebagai contoh, gunakan nama baris gilir untuk mendapatkan panjang elemen padanan:

var $queue=$("div").queue('fx');
Salin selepas log masuk

Jelas sekali, dapatkan baris gilir bernama 'fx' Jika anda ingin mendapatkan panjangnya:

var $length=$('div').queue('fx').length;
Salin selepas log masuk

Perhatikan bahawa panjang baris gilir di sini hanyalah panjang baris gilir elemen padanan yang belum dijalankan Apabila animasi selesai dijalankan, panjang baris gilir akan dikurangkan secara automatik kepada 0

5. Barisan gantian

$('div').queue('fx',function(){
    $('div').slideDown('slow')
         .slideUp('slow')
         .animate({left:'+=100'},4000);
});//定义fx
$('div').queue('fx2',function(){
    $('div').slideDown('fast')
         .slideUp('fast')
         .animate({left:'+=100'},1000);
});//定义fx2
Salin selepas log masuk

Dua baris gilir ditakrifkan di sini, satu baris gilir perlahan, iaitu 'fx' lalai, dan satu lagi baris gilir pantas 'fx2'

Apabila butang diklik:

$('input').click(function(){
  $('div').queue('fx',fx2);
});
Salin selepas log masuk

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan