Laman » Pengekodan » Cara Memainkan GIF animasi onClick

    Cara Memainkan GIF animasi onClick

    GIF Animasi adalah cara yang popular untuk memvisualisasikan konsep reka bentuk (inilah contoh bagaimana kita melakukannya untuk kesan teks pos yang dibuat dengan CSS) atau memamerkan klip video pendek. Tetapi jika anda mempunyai terlalu banyak daripada mereka dalam halaman yang sama, ia akan menyimpang fokus pengguna anda. Untuk halaman yang mempamerkan banyak GIF, ini adalah berita buruk.

    Penyelesaian: berkhidmat kepada pengguna dengan imej statik dan hanya membenarkan animasi GIF dijalankan semasa klik pengguna. Dalam tutorial ringkas ini, kami akan menunjukkan kepada anda bagaimana untuk melakukannya.

    • Lihat Demo
    • Muat turun Sumber

    Bermula

    Mulakan dengan menyediakan folder dan fail projek yang termasuk: fail HTML, jQuery, dan akhirnya fail JavaScript di mana kami akan menulis kod kami. Anda boleh memautkan jQuery ke CDN atau ambil salinan itu dan hubungkannya ke direktori projek anda. Saya akan meninggalkan gaya dan CSS untuk imaginasi anda. Bahagian yang paling penting ialah markup HTML adalah seperti berikut:

     

    Perhatikan tambahan data-alt atribut dalam img elemen. Ini adalah tempat kami menyimpan GIF, sebagai ganti imej statik yang kami mulakan. Anda boleh menambah lebih banyak imej dan juga menambahkan kapsyen untuk setiap melalui figcaption elemen.

    Selepas itu, kami akan menulis JavaScript yang akan membawa keajaiban itu. Idea ini adalah untuk menyampaikan imej GIF apabila pengguna mengklik pada imej.

    JavaScript

    Pertama, kami mencipta satu fungsi yang akan mengambil laluan imej GIF yang telah kami masukkan di dalam data-alt atribut. Kami akan gelung melalui setiap imej dan menggunakan jQuery .data () kaedah untuk melakukannya:

     var getGif = function () var gif = []; $ ('img'). setiap (fungsi () var data = $ (ini) .data ('alt'); gif.push (data);); kembali gif;  var gif = getGif ();

    Kami menjalankan fungsi dan menyimpan output dalam pemboleh ubah gif, seperti di atas. The gif pembolehubah kini mengandungi laluan GIF daripada imej dalam halaman.

    Imej Pra-memuatkan

    Kami kini mempunyai masalah pemuatan: dengan GIF belum dimuatkan, terdapat peluang bahawa GIF animasi tidak akan bermain dengan serta-merta (kerana penyemak imbas memerlukan beberapa saat untuk memuatkan GIF sepenuhnya). Kelewatan ini akan dirasakan lebih ketara apabila saiz imej GIF adalah besar.

    Kita perlu pra-beban, atau memuatkan GIF secara serentak apabila halaman dimuatkan.

     // Pramuat semua GIF. var image = []; $ .each (gif, function (index) image [index] = new Image (); image [index] .src = gif [index];);

    Sekarang, buka DevTools kemudian menuju ke Rangkaian (atau Sumber) tab. Anda akan melihat bahawa GIF telah dimuatkan walaupun disimpan di dalam data-alt atribut. Dan yang berikut adalah semua kod yang perlu anda lakukan.

    Sekeping terakhir kod adalah di mana kita mengikat setiap angka elemen yang membalut imej dengan klik acara.

    Kod ini akan menukar sumber imej antara src atribut di mana imej statik dihidangkan dan data-alt atribut di mana kami pada mulanya menyampaikan imej GIF.

    Kod ini juga akan kembali kepada imej statik apabila pengguna mengklik kali kedua, “berhenti” animasi.

     ('klik', fungsi () var $ this = $ (this), $ index = $ this.index (), $ img = $ this.children ('img'), $ imgSrc = $ img.attr ('src'), $ imgAlt = $ img.attr ('data-alt'), $ imgExt = $ imgAlt.split ('.'); if ($ imgExt [1] === 'gif') $ img.attr ('src', $ img.data ('alt')) attr ('data-alt', $ imgSrc); else $ img.attr ('src' imgAlt) .attr ('data-alt', $ img.data ('alt')););

    Dan itu sahaja. Anda boleh menggilap halaman dengan gaya, sebagai contoh, anda boleh menambah butang main yang memaparkan imej untuk menunjukkan bahawa ia “dimainkan” atau GIF animasi.

    Lihat demo dan muat turun sumbernya di sini.

    • Lihat Demo
    • Muat turun Sumber