2013-02-24 90 views
1

此图片滑块不会显示下一张图片。我有3张图片..图像1,图像2和图像3,但它仅停留在此搜索..Javascript中的图片滑块

<script type="text/javascript"> 
var image1 = new Image(); 
image1.src="jokes.png"; 
var image2 = new Image(); 
image2.src="facts.png"; 
var image3 = new Image(); 
image3.src="csharp.png"; 
</script> 



<img src="jokes.png" name="slide" width="200" height="200"> 
<script type="text/javascript"> 
var step = 1; 

function slideit() { 
    document.images.slide.src = eval("image" + step + ".src"); 
    if (step < 3) { 
     step++; 
     else step = 1 
     setTimeout("slideit()", 2500); 
    } 
    slideit() 
} 
</script> 
+0

另外值得一提的是,如果'slideit() '自己调用,它只会重复一次,因为你使用'setTimeout'而不是'setInterval'。 – Nightfirecat 2013-02-24 20:12:35

回答

4

因为你的函数slideIt不会被调用。第一个电话被包含在函数内部...

试试这个

<script type="text/javascript"> 
var step = 1; 

function slideit() { 
    document.images.slide.src = eval("image" + step + ".src"); 

    if (step < 3) 
     step++; 
    else 
     step = 1 

    setTimeout("slideit()", 2500); 
} 

//First call 
slideit(); 
</script> 
+0

我试过了,它仍然没有改变.. – 2013-02-24 20:15:10

+0

@SefBeezy查看我的回答 – tnanoba 2013-02-24 20:17:36

+0

哦,你的函数也有一个错字。试试我更新的答案。 – sdespont 2013-02-24 20:20:11

0

除了sdespont的答案有语法问题

<script type="text/javascript"> 
var step = 1; 

function slideit() { 
    document.images.slide.src = eval("image" + step + ".src"); 
    if (step < 3){ 
     step++; 
    }else{ 
    step = 1; 
    } 
    setTimeout("slideit()", 2500); 

} 

//First call 
slideit(); 
</script>