Bagaimanakah saya boleh membuat peluncur gelung imej tak terhingga menggunakan JavaScript/jQuery?

Susan Sarandon
Lepaskan: 2024-11-03 00:30:03
asal
584 orang telah melayarinya

How can I create an infinite image loop slider using JavaScript/jQuery?

Konsep Peluncur Infinity Loop

Artikel ini membincangkan amalan terbaik, seperti kebolehbacaan, kebolehgunaan semula kod dan amalan pengekodan yang baik, untuk membina Infinity-Image-Loop- Slider untuk tapak web menggunakan JavaScript/jQuery. Tumpuan adalah pada cara menyusun gambar untuk mencipta ilusi peluncur gelung yang tidak berkesudahan.

Melaksanakan Peluncur Gelung Infinity

Satu kaedah mudah untuk mencipta peluncur imej tak terhingga adalah seperti berikut: Anggapkan anda mempunyai imej "n" untuk slaid dalam gelung, dengan imej pertama mengikuti imej ke-n dan begitu juga sebaliknya. Buat klon imej pertama dan terakhir dan lakukan perkara berikut:

  • Tambah klon imej terakhir sebelum imej pertama.
  • Tambahkan klon imej pertama selepas imej terakhir.

Tidak kira bilangan imej, anda hanya perlu memasukkan dua item klon paling banyak.

Dengan mengandaikan semua imej adalah 100px lebar dan dipaparkan dalam bekas dengan limpahan: tersembunyi, paparan: blok sebaris dan ruang putih: nowrap, bekas yang menyimpan imej boleh dijajarkan dengan mudah dalam satu baris.

Untuk n = 4, struktur DOM akan dipaparkan seperti berikut:

offset(px)     0       100     200     300     400     500
images         |   4c   |   1   |   2   |   3   |   4   |   1c
                                                   
/*                 ^^                                       ^^
       [ Clone of the last image ]              [ Clone of the 1st image ]
*/
Salin selepas log masuk

Pada mulanya, bekas diletakkan dengan kiri: -100px, membenarkan imej pertama dipaparkan. Untuk bertukar antara imej, gunakan animasi JavaScript pada sifat CSS yang anda pilih pada asalnya.

  • Apabila peluncur berada pada imej ke-4, beralih ke imej 1c melibatkan animasi daripada imej 4 hingga 1c. Setelah animasi selesai, serta-merta meletakkan semula pembalut gelangsar pada offset sebenar imej pertama (cth., tetapkan kiri: -100px ke bekas).
  • Begitu juga, apabila peluncur diletakkan pada elemen pertama, melakukan animasi sebelumnya dari imej 1 hingga 4c dan mengalihkan bekas ke offset imej ke-4 (kiri: -400px ke bekas) sudah memadai untuk memaparkan imej sebelumnya.

Mengatur Gelung Slaid

Rebab yang disertakan menunjukkan kesan ini. Di bawah ialah kod JavaScript/jQuery asas yang digunakan:

$(function() {
 
  var gallery = $('#gallery ul'),
      items   = gallery.find('li'),
      len     = items.length,
      current = 1,  /* the item we're currently looking */
      
      first   = items.filter(':first'),
      last    = items.filter(':last'),
      
      triggers = $('button');
  
  /* 1. Cloning first and last item */
  first.before(last.clone(true)); 
  last.after(first.clone(true)); 
  
  /* 2. Set button handlers */
  triggers.on('click', function() {

    var cycle, delta;
    
    if (gallery.is(':not(:animated)')) {
     
        cycle = false;
        delta = (this.id === "prev")? -1 : 1;
        /* in the example buttons have id "prev" or "next" */  
    
        gallery.animate({ left: "+=" + (-100 * delta) }, function() {
      
            current += delta;
       
            /** 
             * we're cycling the slider when the the value of "current" 
             * variable (after increment/decrement) is 0 or when it exceeds
             * the initial gallery length
             */          
            cycle = (current === 0 || current > len);
       
            if (cycle) {
                /* we switched from image 1 to 4-cloned or 
                   from image 4 to 1-cloned */
                current = (current === 0)? len : 1; 
                gallery.css({left:  -100 * current });
            }
        });   
     }
    
  });
});
Salin selepas log masuk

Kesimpulan

Penyelesaian ini agak mudah dan cekap, hanya memerlukan dua operasi sisipan DOM tambahan dan logik pengurusan gelung mudah berbanding bukan -gelongsor gelung.

Walaupun pendekatan alternatif mungkin wujud, kaedah ini menyediakan penyelesaian yang praktikal dan berkesan untuk mencipta peluncur gelung infiniti.

Atas ialah kandungan terperinci Bagaimanakah saya boleh membuat peluncur gelung imej tak terhingga menggunakan JavaScript/jQuery?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan