Pagrindinis » Kodavimas » Kaip žaisti animuotus GIF onClick

    Kaip žaisti animuotus GIF onClick

    Animuotas GIF yra populiarus būdas vizualizuoti dizaino koncepciją (čia pateikiamas pavyzdys, kaip mes tai padarėme atlikdami teksto efektus, sukurtus su CSS), arba parodyti trumpą vaizdo įrašą. Bet jei jūs turite per daug jų tame pačiame puslapyje, jis nukryps nuo jūsų naudotojo dėmesio. Puslapiuose, kuriuose rodoma daug GIF, tai yra blogos naujienos.

    Sprendimas: aptarnauti naudotojus su statiniu vaizdu ir leisti animuotam GIF paleisti tik paspaudus vartotoją. Šioje trumpoje pamokoje parodysime, kaip tai padaryti.

    • Peržiūrėti demonstraciją
    • Atsisiųsti šaltinį

    Darbo pradžia

    Pradėkite rengti projekto aplankus ir failus, kuriuose yra: HTML failas, jQuery ir galiausiai „JavaScript“ failas, kuriame mes parašysime kodą. Galite susieti jQuery su CDN arba patraukti kopiją ir susieti jį su savo projekto katalogu. Stilius ir CSS palieku jūsų vaizduotei. Svarbiausia dalis yra HTML žymėjimas:

     

    Atkreipkite dėmesį į papildomą data-alt atributas img elementas. Čia saugome GIF, vietoj statinio vaizdo, kurį mes iš pradžių aptarnaujame. Galite pridėti daugiau nuotraukų ir taip pat pridėti antraštę kiekvienam figcaption elementas.

    Po to parašysime „JavaScript“, kuri atneš magiją. Idėja yra aptarnauti GIF vaizdą, kai vartotojas spustelės vaizdą.

    „JavaScript“

    Pirma, mes sukuriame funkciją, kuri atgaus GIF vaizdo kelią, kurį mes įdėjome į data-alt atributas. Mes pasieksime kiekvieną vaizdą ir naudosime jQuery .duomenys () būdas tai padaryti:

     var getGif = funkcija () var gif = []; $ ('img') kiekvienas (funkcija () var data = $ (this) .data ('alt'); gif.push (data);); grįžti gif;  var gif = getGif ();

    Mes atliekame funkciją ir išsaugome išvestį kintamajame gif, kaip aukščiau. The gif dabar kintamajame yra GIF kelias iš puslapiuose esančių vaizdų.

    Vaizdo išankstinis įkėlimas

    Dabar mes turime pakrovimo problemą: kai GIF dar nėra įkeltas, yra tikimybė, kad animuotas GIF neatkurs akimirksniu (kadangi naršyklei reikės kelių sekundžių, kad galėtumėte visiškai įkelti GIF). Šis vėlavimas taptų žymesnis, kai GIF vaizdo dydis yra didelis.

    Privalome iš anksto įkelti arba įkelti GIF vienu metu, kai puslapis įkeliamas.

     // Įkelti visą GIF. var image = []; $ .each (gif, funkcija (indeksas) image [index] = naujas Image (); image [index] .src = gif [index];);

    Dabar atidarykite DevTools, tada pereikite prie Tinklas (arba Ištekliai) skirtukas. Jūs pastebėsite, kad GIF jau įkeliami, net jei jie yra išsaugoti data-alt atributas. Ir visi šie kodai, kuriuos reikia padaryti.

    Paskutinis kodo gabalas yra tas, kur mes susiejame kiekvieną skaičius elementas, kuris apgaubia vaizdą su spustelėkite įvykis.

    Kodas pakeis vaizdo šaltinį tarp src atributas, kuriame aptarnaujamas statinis vaizdas, ir data-alt atributas, kuriame iš pradžių aptarnaujame GIF vaizdą.

    Kodas taip pat grįš į statinį vaizdą, kai naudotojas spustelės antrą kartą, “sustojimas” animacija.

     $ („paveikslas“) įjungta („spustelėkite“, funkcija () var $ this = $ (tai), $ index = $ this.index (), $ img = $ this.children („img“), $ imgSrc = $ img.attr ('src'), $ imgAlt = $ img.attr ('data-alt'), $ imgExt = $ imgAlt.split ('.'); jei ($ imgExt [1] === 'gif') $ img.attr ('src', $ img.data ('alt')). attr ('data-alt', $ imgSrc); kitas $ img.attr ('src', $ imgAlt) .attr ('data-alt', $ img.data ('alt')););

    Štai ir viskas. Pavyzdžiui, galite poliruoti puslapį su stiliais, pvz., Galite pridėti atvaizdavimo mygtuką, padengiantį vaizdą, nurodydami, kad jis yra “žaisti” arba animuotas GIF.

    Patikrinkite demonstraciją ir atsisiųskite šaltinį čia.

    • Peržiūrėti demonstraciją
    • Atsisiųsti šaltinį