Si të konfiguroni telefonat inteligjentë dhe PC. Portali informativ

jquery animate nuk funksionon. kthimet e telefonatave

Një prekje e vogël e animacionit mund të ndriçojë çdo ndërfaqe të mërzitshme. Në artikullin e sotëm, do të mësoni se si ta përdorni siç duhet jQuery.

Prezantimi

Animacioni është një koncept që zakonisht shkakton një reagim të paqartë te njerëzit. Disa e konsiderojnë të dobishme, të tjerë e dënojnë përdorimin e tepërt të saj. Pavarësisht kësaj, animacioni i përdorur siç duhet shpesh mund të zbukurojë ndërfaqen e përdoruesit dhe ta bëjë atë të duket më i pastër dhe më i gjallë. Në artikullin e sotëm, ne do të hedhim një vështrim të shpejtë në bazat e jQuery, më pas do të mësojmë se si të krijojmë animacionin tonë të parë, do të mësojmë se si të ndërtojmë efekte të ndryshme, dhe më pas do të krijojmë një animacion që mund të përdoret në projekte reale.

Hapi 1 Bazat e jQuery

jQuery është një bibliotekë JavaScript që synon të ndihmojë një zhvillues të krijojë faqe interneti të pasura, interaktive dhe ndërfaqe përdoruesi duke përdorur sa më pak kod që të jetë e mundur.

Një linjë tipike kodi duket si kjo:

$(Elementi DOM).diçka();

Le të zbërthejmë secilën pjesë:

  • $ - Shkurtim për objekt jQuery. Nëse jeni duke përdorur korniza të shumta në të njëjtën faqe, përdorni stenografinë jQuery në vend të shenjës $: jQuery(DOM Element).something();
  • (element DOM)– Elementi me të cilin do të bësh diçka. Ky është një nga karakteristikat kryesore jQuery. Ju mund të përdorni përzgjedhësit CSS për të marrë elementi i dëshiruar. Çdo përzgjedhës që funksionon në një skedar CSS mund të përdoret këtu. ID, klasa, pseudo-klasa, çfarëdo.
  • .diçka ()– Çfarë doni të bëni me elementin e marrë. Kjo mund të jetë çdo gjë nga thjesht fshehja e një elementi deri te bërja e një kërkese AJAX te një mbajtës ngjarjesh.

Sot do të shikojmë vetëm animacionin dhe efektet që lidhen me funksionalitetin e tij.

Hapi 2 Përdorni efektet e integruara

jQuery ofron nje numer i madh i metoda të integruara që mund t'i përdorni menjëherë jashtë kutisë. Këto janë metoda për shfaqjen/fshehjen e elementeve, me variacione të ndryshme duke përfshirë rrëshqitjen e elementit dhe ndryshimin e transparencës së tij. Ju gjithashtu mund të përdorni një sërë metodash ndërroj, të cilat ndryshojnë dukshmërinë e elementit.

Përpara se të shikojmë secilën nga këto metoda, hidhini një sy formatit bazë të thirrjes për secilën metodë:

$("#element").efekt();

Më lart është paradigma bazë e jQuery, së pari marrim element i nevojshëm, duke përdorur përzgjedhësit CSS. Më pas, ne thjesht thërrasim ndonjë nga metodat e integruara.

Megjithëse shumica e metodave mund të thirren pa parametra, shpesh është e nevojshme të personalizohet funksionaliteti i tyre. Secila prej metodave merr të paktën dy parametra: shpejtësia dhe kthimi i thirrjes.

shpejtësia Përcakton kohëzgjatjen e animacionit në sekonda. Ju mund të kaloni si vlerë një prej fjalë kyçe: i ngadalshëm, normal ose i shpejtë; ose vendosni kohën në milisekonda.

kthimi i thirrjesështë një funksion që ekzekutohet pas përfundimit të animacionit. Mund ta përdorni për çdo gjë si për të bërë një telefonatë AJAX në sfond, për të përditësuar një pjesë ndërfaqja e përdoruesit edhe me shume. Ju jeni të kufizuar vetëm nga imagjinata juaj.

  • shfaqje/fshehin– Metodat për shfaqjen dhe fshehjen e një elementi. Ata pranojnë shpejtësinë dhe thirrjen si parametra.
  • ndërroj– Një metodë që manipulon shfaqjen e një elementi, në varësi të gjendja e tanishme element. Kjo do të thotë, nëse është e fshehur, e shfaq atë dhe anasjelltas. Përdor metodat e shfaqjes dhe fshehjes.
  • rrëshqitje poshtë/rrëshqitjeUp– Metoda mjaft të dukshme. Duke ndryshuar lartësinë e një elementi, krijohet një animacion rrëshqitës që tregon ose fsheh elementin.
  • rrëshqitjeToggle- Pothuajse e njëjtë me metodën e ndërrimit, përveçse përdor metodat rrëshqitje/rrëshqitje për të shfaqur/fshehur elementin.
  • zbehet në/shuhem– Ndryshimi i transparencës së një elementi për të krijuar një efekt zbehje.
  • fadeTo– Ndryshon transparencën e elementit sipas vlerës së kaluar. Siç mund ta merrni me mend, kërkon një parametër shtesë të opacitetit, ku është 0 transparencë të plotë, dhe 1 është errësirë ​​e plotë.

Si një funksionalitet shtesë, metoda ndërroj, mund të marrë si parametër një shprehje që vendos nëse elementi do të shfaqet apo do të fshihet.

Për shembull, nëse dëshironi të ndërroni vetëm artikujt e listës që kanë klasën efekt, kodi juaj do të duket si ky:

$("li").toggle($(this).hasClass("efekt"));

Me fjalë të tjera, funksioni ndërroj teston shprehjen që i është dhënë si parametër dhe nëse është e vërtetë, ndryshon dukshmërinë e elementit. Shprehja që kaluam në shembull kontrollon nëse elementi ka një klasë të caktuar.

Hapi 3 Krijoni animacionin tuaj

Shumë shpesh, metodat e integruara nuk i përshtaten nevojave tuaja, në këtë rast me shumë mundësi do të dëshironi të krijoni efektet tuaja. Me jQuery ju mund ta bëni këtë lehtësisht.

Për të krijuar një efekt animacioni të personalizuar, do t'ju duhet një metodë gjallëroj. Duket kështu:

$("#somelement").animate((vetia: vlera), );

Metoda gjallëroj mjaft e ngjashme me çdo metodë tjetër në atë që përdoret saktësisht në të njëjtën mënyrë. Marrim elementin dhe më pas i kalojmë disa parametra. Parametrat e pranuar janë ato në të cilat është metoda gjallëroj të ndryshme nga efektet e gatshme.

Parametrat e shpejtësisë dhe kthimit të thirrjes kryejnë të njëjtat funksione si në metodat e mëparshme. Një objekt me veti që përbëhet nga një numër i caktuar çiftesh çelësi/vlere është ajo që e bën këtë metodë unike. Ju kaloni në çdo pronë që dëshironi të animoni së bashku me rezultatin përfundimtar. Për shembull, le të themi se dëshironi të animoni gjerësinë e një elementi për të ndryshuar në 90% të vlerës së tij aktuale. Kjo mund të bëhet si kjo:

$("#somelement").animate((width: "90%"), 350, function()( alarm ("Animacioni ka mbaruar ekzekutimin."); ));

Shembulli i kodit të mësipërm animon një ndryshim 90% të gjerësisë dhe më pas shfaq një mesazh që animacioni është i përfunduar.

Vini re se nuk jeni të kufizuar në sasi. Ju mund të animoni një grup të madh karakteristikash, duke përfshirë transparencën, kufijtë, mbushjen, kufijtë, madhësitë e shkronjave. Metoda gjallëroj, është gjithashtu i përshtatshëm sepse mund të punojë me çdo njësi matëse. Piksele, ems, përqindje - gjithçka funksionon. Pra, edhe shembulli i kodit të turbullt më poshtë do të funksionojë. E vërteta nuk do të duket shumë e qartë.

$("#somelement").animate(( gjerësia: "90%" Madhësia e shkronjave: "14em", lartësia: "183px", opacity: 0.8, marginTop: "2cm", margjina majtas: "0.3in", kufiriPoshtë: "30mm ", ), 350, function()(alarm ("Animacioni ka përfunduar ekzekutimin.");));

Kur specifikoni një veti me shumë fjalë, ajo shkruhet pa vizë dhe shkronja e parë e fjalës së dytë duhet të shkruhet me shkronja të mëdha. Ky rekord ndryshon dukshëm nga zakonisht sintaksë css prandaj sigurohuni që ta mbani mend atë. Për shembull, pronë maja e kufirit, duhet të shkruhet kufiriTop.

shënim: jQuery ju lejon vetëm të animoni vlerat numerike të vetive. Kjo do të thotë që nuk do të jeni në gjendje të animoni vetitë e ngjyrave duke përdorur vetëm jQuery. Por nuk është gjithçka keq. Me pak ndihmë nga jQuery UI, mund të shtoni animacion me ngjyra shumë lehtë.

Hapi 4 Rregullimi i efektit

Nëse shikoni efektin e thjeshtë në faqen demo, mund të vëreni një gabim të vogël. Zhvendosja e miut mbi një element disa herë rezulton në një radhë të gjatë të përsëritur efektet e animacionit. Rezultati është një efekt i pakëndshëm, shtrëngues.

Mënyra më e lehtë për të zgjidhur këtë problem është përdorimi i metodës ndaloni, pak para se të fillojë animacioni. Kjo metodë pastron mirë radhën dhe animacioni funksionon normalisht.

Për shembull, ky është kodi juaj i rregullt:

$("#someelement") .hover(function() ( $(this).animate(( lart: 20 ), "shpejt"); ), funksion() ($(this).animate(( lart: 0 ) , "i shpejtë");));

Duke përdorur metodën ndaloni për të parandaluar përsëritjen e panevojshme të animacionit, tuaj kod i ri do të duket kështu:

$("#someelement") .hover(function() ( $(this).stop().animate(( lartë: 20 ), "shpejt"); ), funksion() ($(this).stop() .animate (( krye: 0 ), "shpejt"); ));

Shumë e thjeshtë, apo jo? Por kjo metodë ka një problem të vogël. Lëvizjet e shpejta nuk çojnë në një efekt të përsëritur, por ju duhet të paguani për këtë me animacion jo të plotë. Nëse dëshironi ta zgjidhni plotësisht këtë problem, do t'ju duhet një shtojcë si hoverFlow.

Hapi 5. Shtimi i realizmit - Lehtësimi

Nëse dëshironi të shtoni pak më shumë realizëm, do t'ju duhet një kontroll shtesë mbi shpejtësinë me të cilën shfaqet animacioni. Këtu vjen në ndihmë lehtësimi. Lehtësim kontrollon përshpejtimin dhe ngadalësimin e animacionit me kalimin e kohës.

Metoda që lehtësimin përdor si parazgjedhje quhet lëkundje, është i integruar në funksionalitetin bazë të jQuery. Shtojca lehtësuese e Robert Penner do t'ju lejojë të përdorni disa efekte të ndryshme.

Ekziston vetëm një paralajmërim kur po flasim në lidhje me përdorimin e efekteve lehtësuese personale: ju mund t'i përdorni ato vetëm në lidhje me efekte speciale animacion, pra me metodën animate (). Pasi të keni përfshirë shtojcën, është shumë e lehtë të përdorni çdo metodë lehtësuese duke e kaluar atë si parametër:

$("#somelement").animate(( gjerësia: "90%" lartësia: "183px", ), 550, "easeInElastic");

Mund të kontrolloni se si duken efektet e ndryshme lehtësuese në veprim në faqen demo, në seksionin përkatës. Dhe ndërsa disa nga efektet nuk do të funksionojnë në të gjitha situatat, animacioni juaj do të duket shumë më tërheqës kur përdorimin e duhur disa metoda lehtësuese.

Hapi 6: Hapi lart - jQuery UI

Përmirësimi në jQuery UI na sjell një sërë veçorish të nevojshme. Në fakt, për të përdorur veçori shtesë, nuk keni nevojë bibliotekë e plotë. Për marrjen funksionalitetin e dëshiruar, ju duhen efektet e integruara. Jo vetë UI bazë, vetëm një skedar me efekte të integruara, i cili peshon rreth 10 kilobajt.

Shumica funksione të rëndësishme që ofron biblioteka e efekteve jQuery UI është mbështetje për animimin e ngjyrave, lehtësimin dhe tranzicionin e klasave.

Nëse ju kujtohet, unë tashmë thashë se animacioni në jQuery mund të aplikohet vetëm vlerat numerike. Me jQuery UI, mund ta harroni këtë kufizim. Tani mund të animoni lehtësisht ngjyrë e sfondit elementi, ngjyra e kufirit etj. Gjithashtu, në vend që të krijojë funksione të veçanta për veçori të reja, jQuery UI thjesht zgjeron funksionalitetin bazë. gjallëroj. Kjo do të thotë, nëse e keni përfshirë bibliotekën në faqen tuaj, mund të përdorni metodën e zakonshme gjallëroj dhe do të bëjë të gjitha punët e pista për ju.

Për shembull, nëse doni të animoni ngjyrën e kufirit të një elementi në lëvizje, atëherë kodi juaj do të duket si ky:

$(".block") "), 500);));

Kalimet e klasave janë përgjegjëse për animacionin ndërmjet klasave. Duke përdorur biblioteka bazë jQuery nëse e hiqni dhe më pas shtoni një klasë që ndryshon pamjen element, ndodh në çast. Kur keni në dispozicion bibliotekën UI, mund të kaloni Opsione shtesë, kontrollimi i shpejtësisë së animacionit, metoda lehtësimin dhe kthimi i thirrjes. Ky funksionalitet, si ato të mëparshmet, është ndërtuar në krye të API-së ekzistuese jQuery për ta bërë më të lehtë kalimin.

Hapi 7. Krijimi i efektit të parë, real

Të gjithë shembujt e mësipërm janë vetëm demonstrime të funksionalitetit. Do të ishte mirë t'i përdorni ato për të krijuar një efekt të vërtetë. Kjo është ajo që ne do të bëjmë. Efekti ynë nuk do të jetë diçka radikale apo e veçantë, por me ndihmën e tij, ju do të mësoni se si të zbatoni njohuritë e marra në praktikë.

Le të themi se duam të shfaqim një imazh me dy seksione brenda tij kur rri pezull mbi të me miun. Seksioni i sipërm do të përmbajë titullin e figurës, pjesa e poshtme do të përmbajë titullin e figurës Përshkrim i shkurtër. E di që mund të gjesh sasi e madhe shtojca të ndryshme që bëjnë të njëjtën gjë, por sot do ta bëjmë nga e para. Nuk është aq e vështirë sa duket. Në fakt, është shumë e thjeshtë dhe bëhet mjaft shpejt. Le të fillojmë.

HTML

Së pari na duhet një bazë HTML

Animacion me jQuery për fillestarët

Rast përdorimi i thjeshtë

Një shembull i thjeshtë i përdorimit të veçorive të animacionit të jQuery. Lëviz mbi një imazh për të parë titullin dhe përshkrimin e tij. Kur të largoni miun, ata do të fshihen. Kur rri pezull mbi blloqe me emrin dhe përshkrimin e figurës, ato do të ndryshojnë ngjyrën e sfondit.

Animacioni përdor lehtësimin për të krijuar më shumë tërheqje.

ThemeForest
Një faqe ku do të gjeni shumë shabllone dhe tema
CodeCanyon
Një sajt që përmban shumë skripta dhe shembuj kodesh.

Për këtë efekt, duhet të mendojmë për strukturën e secilit element. Çdo element do të mbështillet në një div, me klasën artikull. Brenda div, do të vendosen tre elementë: një imazh dhe dy div që përmbajnë emrin dhe përshkrimin e imazhit.

Pjesët e tjera janë mjaft të thjeshta. Ne do të duhet të përfshijmë bibliotekën jQuery, jQuery UI dhe një skedar që përmban kodin tonë personal në faqe. Mos harroni se ne kemi nevojë vetëm për efekte jQuery UI, nëse doni të përfshini më shumë efekte do t'ju duhen kuvend i veçantë, të cilin mund ta shkarkoni këtu.

Kështu do të duket faqja jonë në këtë fazë.

css

.artiku ( pozicioni: relative; diferenca: 20 px 60 px 40 px 0; tejmbushje: e fshehur; ) .artikull .title, .artikull .desc ( sfondi: #000; ngjyra: #fff; pozicioni: absolut; shfaqja: bllok; gjerësia: 638 px ; errësirë: 0,4; ) .artikull .titulli ( lart: 0; madhësia e shkronjave: 16 px; mbushja: 12 px 10 px 25 px 0; rreshtimi i tekstit: djathtas; ) .artiku .desc (poshtë: 0; madhësia e shkronjave: 12 px; mbushje: 5px 0 15px 10px;)

Këtu ka disa pika që duhet t'i kushtoni vëmendje. Çdo element ka një veti pozicion në kuptim i afërm, në mënyrë që të vendosen lehtësisht të tjerët brenda këtij elementi. Gjithashtu, blloqeve u caktohet prona vërshoj: i fshehur, në mënyrë që të fshehim emrin dhe përshkrimin e figurës nga jashtë kur ato nuk janë të nevojshme.

Blloqet që përmbajnë një titull dhe përshkrim kanë pronën pozicioni: absolut, kështu që ato janë të pozicionuara saktësisht brenda kutisë së imazhit. Titullit i caktohet një koordinatë lartë: 0, në mënyrë që ajo të jetë e vendosur në krye, dhe përshkrimi fund: 0, dhe përkatësisht ndodhet në fund.

Pjesa tjetër e CSS është shumë e thjeshtë, stilet e shkronjave janë caktuar, disa pozicionime. Asgje speciale.

Tani faqja jonë duket kështu.

Aktivizo JavaScript Magic

$(document).ready(function() ( // Kodi për pjesë të tjera të demonstrimit $(".item").children("div.title").animate((lart: -60), 300); $(".item").fëmijët("div.desc").animate((poshtë: -40), 300); $(".item").hover(function() ( $(this).children("div.title").stop().animate((lart: 0), 700, "easeOutBounce"); $(kjo ).children("div.desc").stop().animate((poshtë: 0), 700, "easeOutBounce"); ), function()($(this).children("div.title"). stop().animate((lart: -60), 500);$(this).children("div.desc").stop().animate((poshtë: -40), 400); )); $(".title, .desc").hover(function() ( $(this).stop().animate((ngjyra e sfondit: "#444"), 700, "easeOutSine"); ), funksion()( $(this).stop().animate((Ngjyra e sfondit: "#000"), 700); )); ));

Mund të duket paksa e komplikuar, por në të vërtetë nuk është. Le të hedhim një vështrim në secilën pjesë.

Logjika pas këtij efekti është shumë e thjeshtë. Meqenëse i pozicionuam absolutisht elementët, fillimisht i fshehim jashtë kutisë së imazhit. Kur lëvizim miun mbi imazhet, thjesht duhet t'i kthejmë ato në pozicionin e tyre origjinal.

Së pari, ne zhvendosim titullin dhe përshkrimin jashtë bllokut prind. Por në vend që të përdorim CSS, ne e bëjmë këtë JavaScript, për arsye shumë specifike. Edhe nëse JS është i çaktivizuar, faqja do të vazhdojë të jetë funksionale. Titulli dhe përshkrimi do të mbeten në krye të imazhit dhe do të shfaqen sikur të jetë aplikuar një efekt hover. Por nëse i fshehim këto blloqe me duke përdorur CSS, dhe JS në faqe do të çaktivizoheshin, nuk do të shfaqen kurrë në ekran.

Kodi ynë fillon duke krijuar një funksion rri pezull për çdo element. Funksioni i parë ekzekutohet kur miu është pezulluar, i dyti - anasjelltas, kur miu është larguar.

Brenda funksionit, kjo- tregon elementin që shkaktoi ngjarjen. Ne përdorim metodën gjallëroj, për të ndryshuar vlerat përkatëse. Ne gjithashtu përdorim lehtësimin, për të shtuar më shumë tërheqje për efektin tonë. Kur largojmë miun, thjesht i ndryshojmë vlerat në gjendjen e tyre origjinale.

Si pak më tepër, nëse qëndroni pezull mbi blloqet e titullit ose përshkrimit, ato do të ndryshojnë ngadalë ngjyrën, falë jQuery UI.

Kjo është e gjitha, efekti ynë është gati për t'u përdorur. Ju mund të shikoni dhe me shembujt e dhënë.

jQuery është një bibliotekë e mrekullueshme që është diversifikuar ndjeshëm vitet e fundit qasjet e zhvilluesve për zgjidhjen e problemeve me të cilat përballen. Kur jQuery CSS nuk mund të krijonte animacione komplekse; JavaScript është përdorur për t'i krijuar ato. jQuery e ka bërë më të lehtë krijimin e animacioneve me një rend të madhësisë. Biblioteka përmban animacionet më të thjeshta (fadeIn(), hide(), slideDown(), etj.) dhe ju lejon të krijoni çdo animacion duke përdorur metodën animate(). Ky artikull i kushtohet përshkrimit të kësaj metode.

jQuery animate() është një metodë mbështjellëse, që do të thotë se funksionon në një grup të parazgjedhur elementësh DOM të mbështjellë në jQuery. Metoda ju lejon të aplikoni efektet e kërkuara të animacionit tek elementët në grup. Zbatimi i sa më sipër në praktikë është bërë i mundur nga prania e një grupi të vetive CSS dhe vlerave që këto veti do të marrin pas përfundimit të animacioneve. Vlerat e ndërmjetme që do të ketë stili kur të arrihet efekti i dëshiruar (të kontrolluara automatikisht nga motori i animacionit) përcaktohen nga kohëzgjatja e efektit dhe funksioni i lehtësimit; Këto dy opsione do të diskutohen më poshtë.

Lista e vetive CSS që mund të animohen është e kufizuar në ato që mund të marrin vlera numerike. Vlerat mund të jenë absolute (p.sh. 200) ose relative. Me vlera absolute, njësia e paracaktuar e jQuery është pikselët. Mund të përdorim edhe njësi specifike: em, rem ose përqindje. Prefikset += ose -= përdoren për të specifikuar vlerat relative; prefikset drejtojnë vlerën relative të synuar në një drejtim pozitiv ose negativ, përkatësisht.

Parametrat dhe nënshkrimi i metodës animate().

Metoda ka dy forma kryesore; shumica e parametrave të përdorur janë opsionale (të mbyllura në kllapa katrore).

  • animate (vetitë[, kohëzgjatja][, lehtësimi][, kthimi i thirrjes])
  • animate (vetitë[, opsionet])

Në thelb, parametrat janë:

  • pronat (Object): Një listë e vetive css që përmbajnë vlerat e arritura në fund të animacionit.
  • kohëzgjatja (Numri|String): kohëzgjatja e efektit në milisekonda ose një prej vargjet e instaluara: "i ngadalshëm" (600 ms), "normal" (400 ms) ose "i shpejtë" (200 ms). Vlera e paracaktuar është "normale".
  • lehtësim (String): Emri i funksionit lehtësues (i cili përcakton ndryshimin në shpejtësinë e animacionit) i përdorur gjatë tranzicionit. Vlera e paracaktuar është "lëkundje".
  • kthimi i thirrjes (Funksioni): Funksioni që do të ekzekutohet kur animacioni përfundon për çdo element të animuar.
  • opsionet (Object): Një objekt që përmban një grup karakteristikash (opsione shtesë) për t'i kaluar metodës. Në dispozicion vetitë e mëposhtme:
    • gjithmonë (Funksion): Një funksion që thirret kur animacioni përfundon ose kur animacioni ndalon (por nuk përfundon) në ekzekutim.
    • i plotë (Funksioni): Funksioni që do të ekzekutohet kur të përfundojë animacioni.
    • bërë (Funksioni): Funksioni për të thirrur kur animacioni është i plotë.
    • kohëzgjatja (String|Numri): e përshkruar më sipër.
    • lehtësim (String): E përshkruar më sipër.
    • dështoj (Funksioni): ekzekutohet kur përpjekje e dështuar animacionet.
    • progresi (Funksioni): Ekzekutohet pas çdo hapi të animacionit. Thirret një herë për çdo element pasi të jetë ekzekutuar animacioni i tij.
    • radha (Boolean): kur animacioni duhet të vendoset në radhën e efekteve (detajet më poshtë).Vlera e paracaktuar është e vërtetë.
    • specialEasing (Object): një objekt parametrat e të cilit janë vetitë css vlerat e të cilit janë funksione tranzicioni
    • start (Funksion): Ekzekutohet kur animacioni fillon të ekzekutohet.
    • hap (Funksion): Një funksion i thirrur për çdo veti të animuar të çdo elementi të animuar.

Termi lehtësim përdoret për të përshkruar një metodë që kontrollon përpunimin dhe vendos shpejtësinë e kuadrove të një animacioni. Animacioni funksionon në mënyrë sekuenciale nëse opsioni i radhës është vendosur në true, dhe paralelisht (pa radhë) nëse vendoset në false.

Shembuj të përdorimit të metodës animate().

Le ta zbatojmë këtë metodë në praktikë. Vini re se animacionet komplekse të renditjes së krijuar nga kjo metodë mund të shkaktojnë gabime. Kjo do të thotë, për animacione shumë komplekse, kjo metodë shmanget më së miri.

Animacion i vetëm

Krijimi i një animacioni të vetëm është jashtëzakonisht i thjeshtë, mjafton një telefonatë. Për shembull, ju duhet të zhvendosni një element nga njëra anë e bllokut në tjetrën. Për të ilustruar këtë animacion, le të krijojmë dy element div, njëri brenda tjetrit. Stili është si më poshtë: sfondi i ndarjes së brendshme është i kuq. Kodi:

HTML

css

.drejtkëndësh ( gjerësia: 300 px; lartësia: 20 px; ekrani: blloku; pozicioni: relative; kufiri: 1 px i zi; margjina: 20 px 0; ) .katror-i vogël (ekrani: blloku; gjerësia: 20 px; lartësia: 20 px; pozicioni: absolute; ngjyra e sfondit: e kuqe;)

Le të animate () dhe të lëvizim katrorin e vogël nga njëra anë në tjetrën:

jQuery

$(".rectangle") .find(".square-small") .animate(( majtas: 280 ), "i ngadalte");

Vetëm vetia e majtë është e animuar. Kohëzgjatja e animacionit - paraprakisht vlera e vendosur i ngadalshëm (600 ms). Brendshme

(klasa e së cilës është .katror-i vogël) lëviz duke përdorur vlerën absolute. Vlera zgjidhet në varësi të gjerësisë së kontejnerit të dhënë nga kodi i mësipërm CSS. Kjo zgjidhje është larg nga idealja. Pra, nëse ndryshoni gjerësinë e enës, e brendshme
nuk do të arrijë në anën tjetër (nëse gjerësia rritet) ose nuk do ta anashkalojë atë (nëse gjerësia zvogëlohet). Për të shmangur këtë, vetia e majtë duhet të vendoset në një vlerë që varet nga llogaritja e gjerësisë aktuale të pjesës së brendshme dhe të jashtme.
:

jQuery

majtas: $(".drejtkëndësh").width() - $(".drejtkëndësh").find(".square-small").width()

Ekzekutoni animacione të shumta në një lak

Kryerja e një sërë animacionesh në një element të vetëm ose grup elementësh nuk e bën këtë më e vështirë për t'u krijuar sekuencat (zinxhirët) e thirrjeve në metodën animate(). Le të lëvizim sërish katrorin e vogël; do të lëvizë përgjatë perimetrit të orës së rërës, e cila është brenda një katrori të madh (dhe jo drejtkëndëshit). Për të krijuar një demonstrim, përdorni shënimin e mëposhtëm:

HTML

Për .square-small, le të përdorim kodin e mësipërm CCS nga shembulli i mëparshëm. Stili i jashtëm katror:

css

.katror i madh ( gjerësia: 300 px; lartësia: 300 px; ekrani: blloku; pozicioni: relative; kufiri: 1 px i zi; margjina: 20 px 0; )

Hapi i fundit është të shkruani kodin JavaScript për katër rreshtat që formojnë perimetrin e orës së rërës. Sheshi i vogël gjallëron nga pozicioni i tij në krye dhe në të majtë të katrorit të jashtëm derisa të arrijë në këndin e poshtëm djathtas të katrorit të madh. Për krijimin efektin e dëshiruar katrori i vogël duhet të lëvizë diagonalisht. Kur të arrijë në këndin e poshtëm të djathtë, duhet të zhvendoset në këndin e poshtëm të majtë, pastaj në këndin e sipërm të djathtë dhe në fund në pozicionin e fillimit.

Tani do ta bëjmë animacionin me lak, domethënë do ta bëjmë në mënyrë që në fund të animacionit të fillojë përsëri. Për ta bërë këtë, ne mund të mbështjellim 4 thirrjet e funksionit animate() brenda një funksioni, i cili nga ana tjetër thirret brenda një funksioni tjetër. Kjo do të thotë, ne do të krijojmë një funksion që mund të referohet. Më pas mund të përdorim funksionin e plotë për të rifilluar animacionin pas hapit të fundit.

jQuery

(funksioni animacion() ( vari opsionet = ( kohëzgjatja: 800, lehtësimi: "linear"); $(".square-big") .find(".square-small") .animate(( majtas: 280, lart: 280 ), opsione) .animate(( majtas: 0, ), opsione) .animate(( majtas: 280, lart: 0, ), opsione) .animate(( majtas: 0, ), $.extend(true, ( ), opsionet, ( i plotë: funksion() ( animacion(); ) ))); ))();

Vini re se kur thirrni animate() për të mos shkruar të njëjtat parametra disa herë, u përdor variabli opsione. Përveç kësaj, në hapi i fundit Le të aksesojmë funksionin e plotë() me metodën jQuery extend().

Më shumë telefonata

Ashtu si në shembullin tonë të fundit, ne vendosëm vetitë e fillimit, të plotësimit dhe të progresit nëpërmjet parametrit të opsioneve (parametri i dytë nga forma e dytë). Qëllimi është të çaktivizoni butonin që, kur klikohet, fillon animacionin kur animacioni është (tashmë) i përfunduar. Detyra e dytë është të tregohet në përqindje se cila pjesë e performanca e pergjithshmeështë bërë animacioni. Për këtë shembull, ne përdorim demonstrimin e parë me ndryshimet e nevojshme të bëra në të.

Për të bërë të mundur shfaqjen e përqindjeve, le të krijojmë një buton dhe një element (span). Shënimi:

HTML

0%

Stili nuk ndryshon, kështu që ne do të vazhdojmë menjëherë me diskutimin Kodi JavaScript. Për ta bërë animacionin të ekzekutohet vetëm kur klikohet butoni, le të krijojmë një mbajtës klikoni ngjarje butonat. Brenda mbajtësit, aktivizimi dhe çaktivizimi i butonit trajtohet me metodën jQuery prop() ( prop në jquery.page2page ). Metoda bazohet në faktin nëse animacioni është duke u ekzekutuar në ky moment ose tashmë të përfunduar. Së fundi, përdoret argumenti i dytë për metodën e progresit, i cili nga ana tjetër është një veti e objektit opsione; tregon përqindjen (e ekzekutimit total të animacionit). Kodi:

jQuery

$("#animation-button").click(function() ( var $button = $(this); $("rectangle") .find(".square-small") .animate(( majtas: 280 ) , ( kohëzgjatja: 2000, fillimi: funksion() ( $button.prop("disabled", true); ), i plotë: funksion() ( $button.prop("disabled", false); ), progres: funksion( animacion, progres) ( $("#percentage").tekst(Math.round(progresi * 100)); ) )); ));

konkluzioni

Metoda jQuery animate() u rishikua, duke treguar nënshkrimin e saj dhe parametrat që merr. Artikulli dha tre shembuj të përdorimit të animacionit. Sigurisht, mundësitë e animate() janë shumë më të gjera se ato të diskutuara këtu. Nëse bëni përpjekje dhe qaseni në krijimin e animacionit me një qasje krijuese, rezultati mund të jetë vërtet mbresëlënës. Si ky për shembull plugin jQuery Audero Smoke Effect, i cili krijon një efekt tymi për një ose më shumë elementë (zakonisht imazhe) të një faqe interneti.

    Vetitë

    kohëzgjatja(vlera e parazgjedhur: 400)

    lehtësimin

    i plotë

    Funksioni që do të thirret pasi të përfundojë animacioni thirret për çdo element.

  • Shtuar në versionin: 1.0

      Vetitë

      Objekti me Karakteristikat e CSS ami dhe vlerat e tyre për të cilat do të realizohet animacioni.

      Grup shoqërues me opsione shtesë.

      • kohëzgjatja(vlera e parazgjedhur: 400)

        Një varg ose numër që specifikon kohëzgjatjen e animacionit.

        lehtësimin(e parazgjedhur: lëkundje)

        Një varg që tregon se cili funksion do të përdoret për animacionin.

        radhe(vlera e parazgjedhur: e vërtetë)

        Një flamur boolean që tregon nëse animacioni duhet të vendoset në radhën e efekteve që do të ekzekutohen. Nëse vlera është false, atëherë animacioni do të fillojë menjëherë. Që nga jQuery 1.7, opsioni queue mund të marrë gjithashtu një varg, në këtë rast animacioni do të shtohet në radhën e përfaqësuar nga ai varg. Kur përdoret një emër arbitrar i radhës - animacioni nuk fillon automatikisht, duhet të telefononi metodën .dequeue("queuename") për ta nisur atë.

        Lehtësim i veçantë

        Një funksion që thirret për çdo veti të animuar të çdo elementi të animacionit. Kjo veçori bën të mundur modifikimin e objektit Tween për të ndryshuar vlerën e një vetie përpara se të vendoset.

        progresin

        Një funksion që thirret pas çdo hapi të animacionit, vetëm një herë për element animacioni, pavarësisht nga numri i vetive të animuara. (Shtuar në versionin: 1.8)

        i plotë

        Një funksion që thirret një herë për të animuar në një element kur të përfundojë.

        Një funksion që thirret në çdo rast - ose kur animacioni përfundon, ose kur anulohet pa u ekzekutuar. (Shtuar në versionin: 1.8)

  • Metoda .animate() ju lejon të krijoni një efekt animimi në çdo veti numerike CSS të një elementi. i vetmi parametri i nevojshëmështë një objekt me veti CSS. Ky objekt është i ngjashëm me atë që i është kaluar metodës .css(), me përjashtim të faktit se diapazoni i vetive është më i kufizuar.

    Vetitë dhe vlerat e animacionit

    Të gjitha vetitë e animacionit duhet të animohen me vlerë të vetme numerike, përveç siç theksohet më poshtë; me shumicën e vetive jo numerike nuk mund të animohen funksionalitetin bazë jQuery (Për shembull, gjerësia , lartësia ose majtas mund të animohen, por ngjyra e sfondit nuk mundet, përveç nëse përdoret shtojca jQuery.Color). Vlerat e vetive trajtohen si numër pikselësh përveç rasteve kur specifikohet ndryshe. Njësitë em dhe % mund të specifikohen aty ku është e aplikueshme.

    Përveç veçorive të stilit, mund të animohen edhe disa veçori jo-stili si scrollTop dhe scrollLeft, si dhe vetitë e personalizuara.

    Vetitë e shkurtra CSS (të tilla si fonti, sfondi, kufiri) nuk mbështeten plotësisht. Për shembull, nëse dëshironi të animoni gjerësinë e kufijve, atëherë stili dhe gjerësia fillestare e kufirit duhet të vendosen paraprakisht. Ose, nëse doni të animoni madhësinë e shkronjave, duhet të përdorni fontSize ose ekuivalentin CSS të "font-size" dhe jo vetëm "font".

    Përveç vlerave numerike, çdo veti mund të pranojë një varg: "shfaq" , "fsheh" ose "ndërro" . Këto shkurtore lejojnë fshehjen ose shfaqjen arbitrare të animacionit që merr parasysh llojin e ekranit të elementit. Për të përdorur gjurmimin e gjendjes së shfaqjes së veçorive të integruara, vargu "toggle" duhet të vendoset si vlera e vetive CSS që animohet.

    Vetitë e animuara mund të jenë gjithashtu relative. Nëse vlera jepet me një sekuencë karakteresh kryesore prej += ose -=, atëherë vlera e synuar llogaritet duke shtuar ose zbritur numrin e dhënë nga vlera aktuale e vetive.

    E rëndësishme: Ndryshe nga metodat e animimit stenografi si .slideDown() dhe .fadeIn() , metoda .animate() nuk fshehja e elementit si pjesë e efektit. Për shembull, në rastin e $("someElement").hide().animate((lartësia: "20px"), 500), animacioni do të ekzekutohet, por elementi do të mbetet i fshehur.

    Kohëzgjatja

    Kohëzgjatja është e specifikuar në milisekonda. Më shumë vlera të larta do të thotë animacion më i ngadalshëm, jo ​​i shpejtë. Vlera e paracaktuar është 400 milisekonda. Vargjet "i shpejtë" dhe "i ngadalshëm" mund të përdoren për të specifikuar një kohëzgjatje prej 200 dhe 600 milisekonda, respektivisht.

    kthimet e telefonatave

    Nëse fillimi , hapi , progresi , i përfunduar , i kryer , dështon , dhe gjithmonë jepen kthime thirrjesh, ato do të thirren për të gjithë elementi që animohet; kjo në këto funksione do të tregojë elementin DOM që animohet. Nëse nuk ka elementë në përzgjedhje, atëherë funksionet e kthimit të thirrjes nuk do të ekzekutohen. Nëse shumë elementë janë duke u animuar, atëherë kthimi i thirrjes ekzekutohet një herë për çdo element, jo një herë për animacionin në tërësi. Përdorni metodën .promise() për të marrë një objekt Promise dhe për të bashkangjitur funksionet e kthimit të thirrjes.

    Përdorimi bazë

    Animoni çdo element, si për shembull një imazh të thjeshtë:

    Për të animuar transparencën, mbushjen majtas dhe lartësinë e imazhit në të njëjtën kohë:

    $("#clickme").click(funksion () (

    $("#libër").animate((

    tejdukshmëria: 0.25

    majtas: "+=50" ,

    lartësia: "ndërro"

    ), 5000 , funksioni () (

    // Animacioni përfundoi.

    Figura 1 - Ilustrimi i efektit të dhënë të animacionit

    Vini re se vlera e synuar e veçorisë së lartësisë është "toggle" . Meqenëse imazhi ishte i dukshëm më parë, animacioni e zvogëlon lartësinë në 0 për ta fshehur atë. Një shtyp i dytë më pas do të ndryshojë këtë tranzicion:


    Figura 2 - Ilustrimi i efektit të dhënë të animacionit

    vetia e tejdukshmërisë imazhi është tashmë i barabartë me vlerën e tij të synuar, kështu që kjo veti nuk animohet në klikimin e dytë. Meqenëse vlera e veçorisë së majtë është një vlerë relative, imazhi lëviz më tej djathtas gjatë animacionit të dytë.

    Vetitë e drejtimit (lart, djathtas, poshtë, majtas) nuk kanë efekt të dukshëm në elementë nëse vetia e pozicionit të tyre vendoset në statike (parazgjedhja).

    Funksioni i zhdukjes për çdo pronë

    Duke filluar me Versionet jQuery 1.4, Ju mund të vendosni funksionin e lehtësimit individualisht për çdo veçori të animuar kur thërrisni .animate() . Në versionin e parë të metodës .animate(), çdo veti mund të marrë një varg si vlera: anëtari i parë i grupit është emri i vetive CSS, anëtari i dytë i grupit është emri i funksionit lehtësues. Nëse një funksion lehtësues nuk është përcaktuar për një pronë të caktuar, atëherë përdoret vlera nga metoda .animate() ose vlera e paracaktuar e saj. Nëse argumenti lehtësues nuk është vendosur, atëherë përdoret vlera e paracaktuar e lëkundjes.

    Artikujt kryesorë të lidhur