Úvodná » kódovanie » Ako hrať animované GIFy onClick

    Ako hrať animované GIFy onClick

    Animovaný GIF je populárny spôsob vizualizácie dizajnového konceptu (tu je príklad toho, ako sme to urobili pre post-textové efekty vytvorené pomocou CSS) alebo zobraziť krátky videoklip. Ale ak máte príliš veľa z nich na tej istej stránke, bude to odmietnuť vašu pozornosť používateľa. Pre stránky, ktoré zobrazujú veľa GIF, je to zlá správa.

    Riešenie: slúžiť používateľom so statickým obrázkom a povoliť animovaný GIF spustiť po kliknutí používateľom. V tejto krátkej príručke vám ukážeme, ako to spraviť.

    • Zobraziť demo
    • Stiahnuť zdroj

    Začíname

    Začnite s prípravou priečinkov a súborov projektu, ktoré zahŕňajú: súbor HTML, jQuery a nakoniec súbor JavaScript, kde napíšeme náš kód. Môžete prepojiť jQuery s CDN alebo si ho vyskúšať a prepojiť ho s adresárom projektu. Ponechal by som štýly a CSS na svoju predstavivosť. Najdôležitejšou časťou je značka HTML, ktorá je nasledovná:

     

    Všimnite si ďalšie Data-alt atribút v img element. Toto je miesto, kde sme uložili GIF namiesto statického obrazu, ktorý sme pôvodne slúžili. Môžete pridať ďalšie obrázky a tiež pridať titulok pre každý cez figcaption element.

    Potom urobíme JavaScript, ktorý prinesie kúzlo. Cieľom je zobraziť obrázok GIF, keď používateľ klikne na obrázok.

    JavaScript

    Najprv vytvoríme funkciu, ktorá načítá cestu GIF, ktorú sme vložili Data-alt atribútov. Budeme prechádzať každý obraz a používať jQuery .dáta () spôsob, ako to urobiť:

     var getGif = funkcia () var gif = []; $ ('img'), každá (funkcia () var data = $ (táto) .data ('alt'); gif.push (dáta); vrátiť gif;  var gif = getGif ();

    Spúšťame túto funkciu a uložíme výstup do premennej gif, ako je uvedené vyššie. gif premenná teraz obsahuje cestu GIF z obrázkov na stránke.

    Predbežné načítanie obrázkov

    Teraz máme problém s načítavaním: s GIF, ktorý ešte nie je načítaný, existuje šanca, že animovaný GIF nebude okamžite prehrávať (keďže prehliadač bude potrebovať niekoľko sekúnd na úplné načítanie GIFu). Toto oneskorenie by sa cítilo výraznejšie, ak je veľkosť obrazu GIF veľká.

    Musíme predbežne načítať alebo načítať GIF súčasne pri načítaní stránky.

     // Predbežne načítať všetky GIF. var obrázok = []; $ .each (gif, funkcia (index) image [index] = nový obrázok (); obrázok [index] .src = gif [index];);

    Teraz otvorte nástroj DevTools a potom prejdite na stránku sieť (alebo zdroje). Všimnete si, že GIF sú už načítané aj napriek tomu, že sú uložené v priečinku Data-alt atribútov. A toto je celý kód, ktorý musíte urobiť.

    Posledný kúsok kódu je miesto, kde sa spojíme figúra prvok, ktorý obklopuje obrázok pomocou cvaknutie udalosť.

    Kód prepíše zdroj obrazu medzi src atribút, kde sa zobrazuje statický obrázok, a Data-alt atribút, kde sme pôvodne zobrazovali obrázok GIF.

    Kód sa tiež vráti k statickému obrázku, keď používateľ klikne druhýkrát, “zastavenie” animácie.

     $ img = $ this.children ('img'), $ ('obrázok'), imgSrc = $ img.attr ('src'), $ imgAlt = $ img.attr ('data-alt'), $ imgExt = $ imgAlt.split ('.'); ($ img.attr ('src', $ img.attr ('src', $ img.data ('alt')), atr ('data-alt', $ imgSrc) imgAlt) .attr ('data-alt', $ img.data ('alt')););

    A to je všetko. Stránku môžete vylepšiť štýly, napríklad môžete pridať tlačidlo prehrávania prekrývajúce obrázok, aby ste naznačili, že to je “prehrávať” alebo animovaný GIF.

    Pozrite sa na demo a stiahnite si zdroj.

    • Zobraziť demo
    • Stiahnuť zdroj