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.
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:
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 ] */
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.
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 }); } }); } }); });
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!