Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk Mencapai Slider Imej Gelung Infiniti Yang Lancar Menggunakan JavaScript/jQuery?

Bagaimana untuk Mencapai Slider Imej Gelung Infiniti Yang Lancar Menggunakan JavaScript/jQuery?

Susan Sarandon
Susan Sarandonasal
2024-11-01 16:45:02978semak imbas

How to Achieve a Seamless Infinity Loop Image Slider Using JavaScript/jQuery?

Konsep Reka Bentuk Gelung Infinity Menggunakan JavaScript/jQuery

Untuk mencipta peluncur imej gelung infiniti dengan kebolehbacaan kod yang optimum, kebolehselenggaraan dan kebolehgunaan semula, pertimbangkan pelan tindakan berikut:

Susunan Imej untuk Kesan Gelung Infiniti

Untuk mencapai ilusi gelung tak terhingga, laksanakan salah satu daripada dua pendekatan:

  • Tukar z-Index: Laraskan indeks-z setiap imej apabila imej seterusnya atau sebelumnya menjadi kelihatan.
  • Ubah suai Kedudukan DOM: Gerakkan imej dalam DOM untuk mencipta rupa tatal atau gelung.

Mengklon Imej untuk Gelung Lancar

Untuk mencipta gelung tak terhingga, klon imej pertama dan terakhir dalam urutan. Kemudian, semasa menatal:

  • Apabila beralih daripada imej n ke imej 1, alihkan bekas ke ofset imej pertama sebenar sebaik sahaja animasi selesai.
  • Apabila beralih daripada imej 1 ke imej n, alihkan bekas ke ofset imej ke-n sebenar sebaik sahaja animasi selesai.

Kod Contoh

Pertimbangkan coretan kod JavaScript/jQuery berikut sebagai contoh pelaksanaan:

$(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 });
            }
        });   
     }
    
  });
});

Atas ialah kandungan terperinci Bagaimana untuk Mencapai Slider Imej Gelung Infiniti Yang Lancar Menggunakan JavaScript/jQuery?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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