我有以下代码:
<script type="text/javascript">
var image1=new Image()
image1.src="images/natandadam.jpg"
var image2=new Image()
image2.src="images/gardaa.jpg"
var image3=new Image()
image3.src="images/marmaris.jpg"
var image4=new Image()
image4.src="images/gardab.jpg"
var image5=new Image()
image5.src="images/engagement.jpg"
var image6=new Image()
image6.src="images/gardac.jpg"
var image7=new Image()
image7.src="images/natandadamlake.jpg"
//-->
</script>
<script>
<!--
//variable that will increment through the images
var step=1
function slideit(){
//if browser does not support the image object, exit.
if (!document.images) {
return;
}
document.images.slide.src=eval("image"+step+".src");
if (step<7) {
step++;
} else {
step=1;
}
//call function "slideit()" every 2.5 seconds
setTimeout("slideit()",2500);
}
slideit();
//-->
</script>
......这就是它:
<img style="border:6px double #545565;" src="gardaa.jpg" name="slide" width=600 height=400>
我希望它继续跳过图像,但它会在最后一个图像上停止。它过去常常只有三张图像;现在我已经添加了更多停止。
我要改变什么才能让它们重复?
答案 0 :(得分:3)
您可以简化脚本:
<script type="text/javascript">
var images ="natandadam.jpg,gardaa.jpg,marmaris.jpg,gardab.jpg,engagement.jpg,gardac.jpg,natandadamlake.jpg".split(",")
var step=1
function slideit(){
document.images.slide.src="images/" + images[step]
step++
if(step>images.length) {
step = 1
}
setTimeout(function(){slideit()},2500);
}
slideit();
</script>
一些提示:
1 - 您无需使用<!--
和//-->
来隐藏您的脚本。唯一需要它的浏览器在90年代就死了。
2 - 不要使用eval()
,这是邪恶的。
3 - 由于图像现在是一个数组,您可以根据需要选中添加或删除多个,而无需使用if (step<7)
。代码只检查数组的长度。
4 - 在setTimeout中使用所谓的匿名函数而不是引用代码。引用代码在内部使用eval(
。