Mbinu ya animate
Mbinu animate inaruhusu kuunda
athari za animasyon kwa
sifa mbalimbali za CSS. Kigezo pekee cha lazima
- kitu chenye sifa za CSS, kama ile
tunayopitisha kwa mbinu
css.
Sifa nyingi, zilizo na thamani zisizo za nambari au kadhaa
haziwezi kuchezwa kwa utendakazi wa msingi
wa jQuery (k.m. background-color). Pia si kila wakati
majina mafupi ya sifa za CSS yanasaidiwa, kwa mfano
font - badala yake tunahitaji kutumia fontSize au
font-size. Kabla ya thamani unaweza kuweka '+=' au '-=',
katika kesi hiyo thamani iliyoonyeshwa hapo baadaye itaongezwa au
itapunguzwa kutoka kwa thamani ya sasa ya sifa. Pia badala ya thamani za nambari
unaweza kuweka show, hide au
toggle. Athari zote za jQuery, ikiwa ni pamoja na animate, zinaweza
zimazimwa kimataifa, kwa kutumia usanidi
jQuery.fx.off = true,
ambayo inaweka thamani ya muda uendeshaji kuwa 0.
Syntax
Kigezo cha kwanza cha animasyon hupitisha kitu chenye
sifa za CSS na thamani zake katika umbizo
ufunguo: thamani, ambazo tunakusudia
kucheza. Vigezo vilivyobaki huchukuliwa kuwa
si vya lazima. Kigezo cha pili - huamua
muda wa animasyon kwa millisekunde, 400ms
kwa chaguo-msingi. Kigezo cha tatu ni kitendo cha ulegezaji
kwa mpito (kwa chaguo-msingi ni swing),
na cha nne - kitendo cha callback, ambacho
kitaanza baada ya kukamilika kwa animasyon:
.animate(sifa, [muda ], [kitendo cha ulegezaji ], [kitendo cha callback ]);
Muda unaweza kuwekwa sio tu kwa millisekunde,
lakini pia kwa maneno muhimu slow (600ms)
na fast (200ms), kadiri thamani inavyokuwa kubwa,
ndivyo animasyon inavyokuwa polepole.
Unaweza kupitisha kwa mbinu chaguzi mbalimbali
kama kigezo cha pili, kwa umbo la kitu cha JavaScript, kilicho na
jozi ufunguo: thamani:
.animate(sifa, chaguzi);
Kwa mfano, wacha tuweke kwa sifa za CSS width
na height thamani toggle. Muda
uendelee kwa 5000ms, vitendo vya ulegezaji tutavipitisha kwa umbo la kitu,
kwa upana hii itakuwa kitendo cha mstari, na kwa
urefu - easeOutBounce, pia
baada ya kukamilika kwa animasyon kitendo kimoja kitatekelezwa
(tazama ufunguo complete), ambayo baada ya kipengele chenye
#test kitaweka div yenye maandishi 'Animation
complete.':
$('#test').animate({
width: 'toggle',
height: 'toggle'
}, {
duration: 5000,
specialEasing: {
width: 'linear',
height: 'easeOutBounce'
},
complete: function() {
$(this).after('<div>Animation complete.</div>');
}
});
Chini kwenye jedwali kuna sifa na mbinu
za kitu options na maelezo yake:
| Jina | Maelezo |
|---|---|
duration |
Muda wa animasyon kwa millisekunde - herufi au
nambari. 400ms kwa chaguo-msingi.
|
easing |
Huweka ni kitendo gani cha ulegezaji
kutumia. swing kwa chaguo-msingi.
|
queue |
Thamani ya boolean au herufi. true kwa
chaguo-msingi. Inaonyesha - kuweka
animasyon kwenye foleni. Kwa thamani false
animasyon itaanza mara moja. Ikiwa kigezo
kitapitiwa kwa herufi, basi animasyon itawekwa kwenye
foleni, inayowakilishwa na kigezo hiki. Wakati
wa kutumia foleni yenye jina la mtumiaji,
animasyon haitaanza moja kwa moja, ili
kuianzisha - tumia dequeue('queuename').
|
specialEasing |
Hapa unaweza kupitisha kitu, ambacho vifunguo vitakuwa sifa za CSS, na thamani - vitendo vya ulegezaji vinavyofanana navyo. |
step |
Kitendo, kinachoitwa kwa kila sifa iliyochezwa
ya kila kipengele kilichochezwa. Kinaruhusu
kubadilisha kitu Tween, ili kubadilisha thamani
ya sifa kabla ya kuwekwa. Kama
vigezo huchukua thamani ya sasa ya tween
na kitu Tween.
|
progress |
Kitendo, kinachoitwa baada ya kila hatua ya animasyon,
moja kwa moja kwa kila kipengele bila kujali
idadi ya sifa zilizochezwa. Kitendo huchukua
vigezo vitatu animation (kwa umbo la ahadi),
progress (nambari kutoka 0 hadi 1)
na remainingMs (idadi ya millisekunde zilizobaki).
|
complete |
Kitendo, kinachoitwa mara moja baada ya kumalizika
kwa animasyon ya kipengele. Kitendo huchukua
animation (kwa umbo la ahadi).
|
start |
Kitendo, kinachoitwa wakati animasyon
ya kipengele inapoanza. Kitendo huchukua
animation (kwa umbo la ahadi) na
jumpedToEnd (Thamani ya Boolean. Ikiwa
true, basi animasyon moja kwa moja
inakamilika).
|
done |
Kitendo, kinachoitwa wakati animasyon
ya kipengele inapomalizika (ahadi yake imekamilika
kwa mafanikio). Kitendo huchukua
animation (kwa umbo la ahadi) na
jumpedToEnd (Thamani ya Boolean. Ikiwa
true, basi animasyon moja kwa moja
inakamilika).
|
fail |
Kitendo, kinachoitwa wakati animasyon
ya kipengele inamalizika kwa kosa (ahadi yake
imekamilika kwa kosa). Kitendo huchukua
animation (kwa umbo la ahadi) na
jumpedToEnd (Thamani ya Boolean. Ikiwa
true, basi animasyon moja kwa moja
inakamilika).
|
always |
Kitendo, kinachoitwa wakati animasyon
ya kipengele inapokamilika au kusimamishwa bila
kukamilika (ahadi yake imekamilika kwa mafanikio au kwa
kosa). Kitendo huchukua
animation (kwa umbo la ahadi) na
jumpedToEnd (Thamani ya Boolean. Ikiwa
true, basi animasyon moja kwa moja
inakamilika).
|
Mfano
Wacha tuweze kubonyeza kitufe #left, tusogeze
mraba wa kijani kushoto, na kitufe #right
kulia kwa 50px, pia tuweke muda
uendelee kwa 600ms - kwa amri slow:
<button id="left">kushoto</button>
<button id="right">kulia</button>
<div class="block"></div>
div {
position: absolute;
background-color: green;
left: 50px;
width: 100px;
height: 100px;
margin: 5px;
}
$('#right').click(function() {
$('.block').animate({'left': '+=50px'}, 'slow');
});
$('#left').click(function() {
$('.block').animate({'left': '-=50px'}, 'slow');
});
Tazama pia
-
mbinu
show,
ambayo inaonyesha kwa ulegevu vipengele -
mbinu
stop,
ambayo inaruhusu kusimamisha animasyon iliyoanzishwa -
mbinu
delay,
ambayo inaweka kucheleweshwa kwa utekelezaji wa matukio -
sifa
jQuery.fx.off,
ambayo inaruhusu kuzima kimataifa animasyon -
kichaguzi
animated,
ambayo huchagua vipengele, ambavyo kwa sasa vinaingiliana kwenye animasyon