2013-12-10 41 views
0

我没一会儿没有代码,所以我要问这个傻问题:更换30帧图像,然后停止

我有一个形象上,使用下列SRC网页:“图像/圣诞老人/ 1.JPG “

每隔250毫秒”1.jpg“应该用”2.jpg“,”3.jpg“等替换为30,然后停止,然后它应该激发功能”谢谢“,它尚未定义。我做错了什么?

var theSanta = $('div#main img#theSanta'); 

     //case 1: theSanta.attr('src', 'images/santa/1.jpg'); 

setInterval(function() { 

    for(var i=1; i<31; i++) { 
     theSantaSrc = 'images/santa/' + i + '.jpg'; 
     theSanta.attr('src', theSantaSrc); 
    } 
}, 500); 

}

+0

ID是唯一的,所以'theSanta'只包含一个单一的形象,因为jQuery将找不到任何比这个ID的第一要素,因为不应该有任何更多! – adeneo

+1

每半秒钟,你的循环就完全运行。 – kei

+0

@kei击中了要害,你通过所有的图像,在短短几毫秒的时间都在每30秒一次循环。您需要跟踪setInterval函数之外的图像计数器,并且没有内部循环。 –

回答

5

for循环中取出,并简单地每次计数的时间间隔运行。

var theSanta = $('div#main img#theSanta'); 

var count = 1; 
var counter = setInterval(function() {   
    theSantaSrc = 'images/santa/' + count + '.jpg'; 
    theSanta.attr('src', theSantaSrc); 

    if (count >= 30) { 
     counter.clearInterval(); 
     alert('Thanks!'); 
    } 
    else count++; 
}, 500); 
+0

另一集“互联网救了我的屁股在工作中” - 感谢jibsales!我用“count == 30”替换了“count <30”,所以它不会碰到“31”。这是一张可爱小猫的照片:http://images4.fanpop.com/image/photos/16100000/Cute-Kitten-kittens-16122951-1280-800.jpg – user980018

+0

哎呀!我做了编辑来切换操作员。很高兴帮助和HO HO HO! – srquinn

+1

比可爱的小猫更好的圣诞礼物是给我一些代表并接受答案......虽然小猫很可爱=) – srquinn

0

我做了什么错?

让我们来看看下面的代码:

setInterval(function() { 

    for(var i=1; i<31; i++) { 
     theSantaSrc = 'images/santa/' + i + '.jpg'; 
     theSanta.attr('src', theSantaSrc); 
    } 
}, 500); 

您定义的setInterval里面一个for循环。所以每500毫秒,for循环执行30次。摆脱for循环,你不需要它。

var i = 1; 
var interval = setInterval(function() { 
    if (i < 31){ // check the step count 
     theSantaSrc = 'images/santa/' + i + '.jpg'; 
     theSanta.attr('src', theSantaSrc); 
     i++; 
    } else { // stop the interval 
     clearInterval(interval); 
     thanks(); // execute your thanks function here 
    } 
}, 500);