PDA

View Full Version : Cần giúp đỡ khi dùng multi setTimeout bị giật



quanghien2005k
08-04-2014, 09:02
Xin chào,

Mình có làm 1 số hiệu ứng đổi background dùng setTimeout để lập lại, nhưng khi chạy lên thì nó bị giật sau khoản 2 hay 3 lần không bị.

Ai biết bị lỗi gì xin vui lòng chỉ giúp mình.

Mình xin cám ơn.

đây là code của mình

<script type="text/javascript">
//Preload images first
$.fn.preload = function() {
this.each(function(){
$('<img/>')[0].src = this;
});
}
//Life effect
var lifes = Array("images/anime/lifes/life1.png",
"images/anime/lifes/life2.png",
"images/anime/lifes/life3.png",
"images/anime/lifes/life4.png",
"images/anime/lifes/life5.png",
"images/anime/lifes/life6.png",
"images/anime/lifes/life7.png",
"images/anime/lifes/life8.png");
$([lifes[0], lifes[1], lifes[2], lifes[3], lifes[4], lifes[5], lifes[6], lifes[7]]).preload();

//Drop effect
var drops = Array("images/anime/drops/drop1.png",
"images/anime/drops/drop2.png",
"images/anime/drops/drop3.png",
"images/anime/drops/drop4.png",
"images/anime/drops/drop5.png",
"images/anime/drops/drop6.png",
"images/anime/drops/drop7.png",
"images/anime/drops/drop8.png",
"images/anime/drops/drop9.png",
"images/anime/drops/drop10.png",
"images/anime/drops/drop11.png",
"images/anime/drops/drop12.png",
"images/anime/drops/drop13.png",
"images/anime/drops/drop14.png",
"images/anime/drops/drop15.png");
$([drops[0], drops[1], drops[2], drops[3], drops[4], drops[5], drops[6], drops[7], drops[8], drops[9], drops[10], drops[11], drops[12], drops[13], drops[14]]).preload();

// Usage:
var currlife = currdrop = 0;

$(document).ready(function(){
function loadlife(){
currlife++;
if(currlife > lifes.length-1){
currlife=0;
}
var newimage = lifes[currlife];
$('#animelife').css("background-image", "url(" + newimage + ")");
$('#animelifeL img').attr("src", newimage);
$('#animelifeR img').attr("src", newimage);
setTimeout(loadlife, 150);
}
setTimeout(loadlife, 150);


function loaddrop(){
currdrop++;
if(currdrop > drops.length-1){
currdrop=0;
}
var newimage = drops[currdrop];
$('#animedrop').css("background-image", "url(" + newimage + ")");
setTimeout(loaddrop, 150);
}
setTimeout(loaddrop, 150);
</script>

truongson1810
12-04-2014, 12:35
Ban thu preload images truoc xem sao