javascript - Apakah prinsip karusel hujung ke hujung dalam js?
高洛峰2017-07-05 10:52:07
0
9
1079
Karusel am dilaksanakan dengan menukar sebelah kiri bekas induk imej, tetapi bagaimana pula dengan prinsip karusel yang disambungkan dari hujung ke hujung?
Izinkan saya bercakap tentang idea saya, saya harap ia dapat membantu anda. Saya menggunakan Jquery.
1
2
li>4
.....
Dapatkan semua tag li $("li"). Klik butang gerak kiri atau kanan, dan ul akan bergerak ke kiri dan kanan sebanyak XX piksel (setiap li adalah saiz yang sama, gerakkan lebar satu li) Letakkan $("li").eq[0] pertama pada kiri dan letakkannya di ul Last (tambahkanKe); bergerak ke kanan meletakkan li terakhir di hadapan (prependTO). Tambah beberapa kesan animasi animate() untuk menjadikannya kelihatan lebih baik.
Sambung hujung ke hujung, bukan? Saya telah melihat beberapa prinsip karusel yang berkaitan secara amnya, yang pertama ditukar kepada yang kedua dengan bergerak sedikit dengan js Kemudian apabila ia datang kepada yang terakhir, kita boleh menambah satu lagi selepas salinan A daripada gambar, dan kemudian beralih daripada gambar terakhir kepada klon gambar pertama juga adalah sedikit penukaran pergerakan Walau bagaimanapun, selepas penukaran selesai, ia segera ditukar kepada kedudukan gambar pertama yang sebenar, iaitu kiri: 0. Pada masa ini, langkah seterusnya ialah menukar dari gambar pertama ke gambar kedua dengan gembira. - - Saya tertanya-tanya adakah ini yang ditanya oleh penanya?
Anda boleh bayangkan setiap gambar dalam komponen karusel sebagai individu bebas, dan bukannya dihubungkan dengan gambar lain secara berturut-turut secara keseluruhan
Setiap kali gambar ditukar, pengguna hanya boleh melihat 2 gambar: gambar semasa dan gambar seterusnya. , kita hanya perlu menyediakan 2 gambar ini dan menetapkan animasi anjakan yang sepadan dengan sambungan hujung ke hujung, letakkan sahaja "kepala" di belakang "ekor" dan kemudian hidupkan ia .
Begitu juga jika anda ingin menukar kepada gambar sebelumnya, cuma sediakan gambar semasa dan gambar sebelumnya dan tetapkan animasi anjakannya
Juga peringatan, pada mudah alih sebaiknya gunakan
untuk anjakan, yang boleh mendayakan pecutan gpu, jika tidak animasi akan membekutransform: translate3d(x, 0, 0)
Adakah penyoal tahu tentang baris gilir dan tindanan. Jika ya, carta karusel adalah baris gilir, dan elemen yang dinyah gilir dimasukkan semula ke dalam baris gilir.
Gunakan 2 set gambar yang sama dan gerakkannya melalui peralihan dan ubah suai ke kiri.
Apabila dibiarkan ke gambar pertama dalam kumpulan kedua, matikan terus trantition dan kiri ke gambar pertama dalam kumpulan pertama, dan kemudian hidupkan peralihan
Prinsipnya ialah: dengan mengandaikan anda bergerak ke kiri, selepas setiap pergerakan, gerakkan p gambar paling kiri ke kanan, iaitu, gerakkan p pertama ke yang terakhir, dan pada masa yang sama ubah suai nilai kiri bekas besar dan tambahkan lebar imej.
Izinkan saya bercakap tentang idea saya, saya harap ia dapat membantu anda. Saya menggunakan Jquery.
.....
Dapatkan semua tag li $("li"). Klik butang gerak kiri atau kanan, dan ul akan bergerak ke kiri dan kanan sebanyak XX piksel (setiap li adalah saiz yang sama, gerakkan lebar satu li)
Letakkan $("li").eq[0] pertama pada kiri dan letakkannya di ul Last (tambahkanKe); bergerak ke kanan meletakkan li terakhir di hadapan (prependTO).
Tambah beberapa kesan animasi animate() untuk menjadikannya kelihatan lebih baik.
Sambung hujung ke hujung, bukan? Saya telah melihat beberapa prinsip karusel yang berkaitan secara amnya, yang pertama ditukar kepada yang kedua dengan bergerak sedikit dengan js Kemudian apabila ia datang kepada yang terakhir, kita boleh menambah satu lagi selepas salinan A daripada gambar, dan kemudian beralih daripada gambar terakhir kepada klon gambar pertama juga adalah sedikit penukaran pergerakan Walau bagaimanapun, selepas penukaran selesai, ia segera ditukar kepada kedudukan gambar pertama yang sebenar, iaitu kiri: 0. Pada masa ini, langkah seterusnya ialah menukar dari gambar pertama ke gambar kedua dengan gembira. - - Saya tertanya-tanya adakah ini yang ditanya oleh penanya?
Beri saya idea
Anda boleh bayangkan setiap gambar dalam komponen karusel sebagai individu bebas, dan bukannya dihubungkan dengan gambar lain secara berturut-turut secara keseluruhan
Setiap kali gambar ditukar, pengguna hanya boleh melihat 2 gambar: gambar semasa dan gambar seterusnya. , kita hanya perlu menyediakan 2 gambar ini dan menetapkan animasi anjakan yang sepadan dengan sambungan hujung ke hujung, letakkan sahaja "kepala" di belakang "ekor" dan kemudian hidupkan ia
Begitu juga jika anda ingin menukar kepada gambar sebelumnya, cuma sediakan gambar semasa dan gambar sebelumnya dan tetapkan animasi anjakannya Juga peringatan, pada mudah alih sebaiknya gunakan.
untuk anjakan, yang boleh mendayakan pecutan gpu, jika tidak animasi akan membeku
transform: translate3d(x, 0, 0)
Sebenarnya ia sangat mudah. Katakan terdapat lima gambar asli, dan strukturnya adalah seperti berikut:
Anda mengubahnya menjadi:
Apabila gambar pertama meluncur ke kiri, tetapkan semula kiri ke gambar kelima selepas animasi tamat, dan sebaliknya!
Imej karusel Saya lebih suka menukar src secara dinamik
Adakah penyoal tahu tentang baris gilir dan tindanan. Jika ya, carta karusel adalah baris gilir, dan elemen yang dinyah gilir dimasukkan semula ke dalam baris gilir.
Gunakan 2 set gambar yang sama dan gerakkannya melalui peralihan dan ubah suai ke kiri.
Apabila dibiarkan ke gambar pertama dalam kumpulan kedua, matikan terus trantition dan kiri ke gambar pertama dalam kumpulan pertama, dan kemudian hidupkan peralihan
Prinsipnya ialah: dengan mengandaikan anda bergerak ke kiri, selepas setiap pergerakan, gerakkan p gambar paling kiri ke kanan, iaitu, gerakkan p pertama ke yang terakhir, dan pada masa yang sama ubah suai nilai kiri bekas besar dan tambahkan lebar imej.
Jika anda menggunakan jquery, anda boleh menggunakan insertAfter dan insertBefore