var mark2=true;
if(mark2){
move(1);
mark2=false;
}
function move(){
$(".box").animate({
width: arrW[index],
height: arrH[index],
opacity: arrO[index],
left: arrL[index],
top: arrT[index]
},500,function(){
mark2=true;
})
}
Kod di atas dilaksanakanmove(1); mark2=false;
这两句的时候,move
函数中用了animate
动画函数,那move
的调用是属于异步的吗?也就是放到任务队列中执行吗,所以首先执行mark2=false;
Adakah ini betul untuk difahami?
Saya rasa untuk soalan ini anda boleh menulis
console.log('')
terus pada kod dan mencetak kandungan untuk mengesahkan pesanan yang anda teka.Animasi jquery tidak segerak, tidak perlu dikatakan, http://www.cnblogs.com/aaronj...
Prinsip umum ialah menggunakan setTimeout dan seumpamanya untuk menangguhkan pelaksanaan secara kerap. Jelas sekali, panggilan balik animate akan diletakkan dalam baris gilir tugas apabila ia mencapai titik, jadi
mark2=false
ia mesti dilaksanakan terlebih dahulu.Pergerakan panggilan mesti disekat serentak,
animate juga menyekat serentak
Hasilnya ialah
Jika pergerakan tidak segerak
Anda akan melihat "Run End" dahulu dan kemudian perkara lain
Jika animasi tidak segerak
Anda akan melihat pergerakan tamat sebelum animasi bermula.
Sebagai contoh
Hasilnya ialah