Homepage » Coding » Hogyan lehet lejátszani az animált GIF-eket az onClick-en

    Hogyan lehet lejátszani az animált GIF-eket az onClick-en

    Az animált GIF egy népszerű módja a tervezési koncepció megjelenítésének (itt egy példa arra, hogyan tettük meg a CSS-ben létrehozott szöveges szöveges hatásokhoz), vagy egy rövid videoklipet mutatunk be. De ha túl sokan vannak ugyanazon az oldalon, akkor eltér a felhasználó fókuszától. A sok GIF-et bemutató oldalak esetében ez rossz hír.

    A megoldás: a felhasználókat statikus képpel szolgálják, és csak akkor engedélyezhetik az animált GIF-t, ha a felhasználó rákattint. Ebben a rövid bemutatóban megmutatjuk, hogyan kell ezt csinálni.

    • Demó megtekintése
    • Letöltés forrása

    Elkezdeni

    Kezdjük a projekt mappák és fájlok előkészítésével, amelyek tartalmazzák a következőket: HTML fájl, a jQuery, és végül a JavaScript fájl, ahol a kódot írjuk. A jQuery-t CDN-hez kapcsolhatja, vagy megragadhatja a másolatot, és linkelheti a projektkönyvtárához. A stílusokat és a CSS-t elhagynám a képzeletednek. A legfontosabb része a HTML jelölés a következő:

     

    Figyelje meg a további data-alt attribútum a img elem. Ez az a hely, ahol a GIF-et tároljuk, a kezdetben szolgáló statikus kép helyett. Több képet is hozzáadhat, és hozzáadhat egy feliratot mindegyikhez a figcaption elem.

    Ezt követően megírjuk a JavaScript-et, amely a varázslatot hozza. Az ötlet az, hogy a GIF-képet a felhasználónak a képre kattintva szolgáljuk fel.

    A JavaScript

    Először egy olyan funkciót hozunk létre, amely megkapja a GIF képútvonalat, amelyet a data-alt tulajdonság. Az egyes képeket körbevágjuk, és használjuk a jQuery-t .adat() módszer erre:

     var getGif = függvény () var gif = []; $ ('img') mindegyik (függvény () var data = $ (ez) .data ('alt'); gif.push (data);); vissza gif;  var gif = getGif ();

    Futtatjuk a funkciót és mentjük a kimenetet egy változóba gif, mint fent. A gif A változó most tartalmazza a GIF elérési útját az oldal képeiből.

    Kép előzetes betöltése

    Most már van egy betöltési probléma: a GIF még nincs betöltve, az esély arra, hogy az animált GIF nem fog azonnal lejátszani (mivel a böngészőnek néhány másodpercre van szüksége a GIF teljes feltöltéséhez). Ez a késleltetés sokkal jelentősebb lenne, ha a GIF képmérete nagy.

    Előre kell betöltenünk, vagy az oldal betöltésekor egyidejűleg be kell tölteni a GIF-eket.

     // Az összes GIF betöltése. var image = []; $ .each (gif, függvény (index) image [index] = új kép (); kép [index] .src = gif [index];);

    Most nyissa meg a DevTools-t, majd menjen át a Hálózat (vagy Erőforrások) lap. Észreveheted, hogy a GIF-ek már betöltődtek, még akkor is, ha a GIF-eket elmentettük data-alt tulajdonság. És az alábbiak mindazok a kódok, amiket meg kell tenned.

    A kód utolsó darabja, ahol mindkettőt kötjük ábra elemet, amely a képet a kettyenés esemény.

    A kód kicseréli a képforrást a src attribútum, ahol a statikus kép szolgál, és a data-alt attribútum, ahol kezdetben a GIF-képet szolgáljuk.

    A kód visszaáll a statikus képre, amikor a felhasználó rákattint egy második alkalommal, “megállítás” az animáció.

     $ ('ábra') be ('kattintás', függvény () var $ this = $ (ez), $ index = $ this.index (), $ img = $ this.children ('img'), $ imgSrc = $ img.attr ('src'), $ imgAlt = $ img.attr ('data-alt'), $ imgExt = $ imgAlt.split ('.'); ha ($ imgExt [1] === 'gif') $ img.attr ('src', $ img.data ('alt')). attr ('data-alt', $ imgSrc); más $ img.attr ('src', $ imgAlt) .attr ('data-alt', $ img.data ('alt')););

    És ez az. Az oldalt stílusokkal polírozhatja, például hozzáadhat egy lejátszási gombot, amely átfedi a képet, hogy jelezze, hogy ez a kép “játékra alkalmas” vagy egy animált GIF.

    Nézze meg a bemutatót, és töltse le a forrást itt.

    • Demó megtekintése
    • Letöltés forrása