因此,基本上应该有一个交通灯,它应该通过每个图像使用CSS幻灯片,但它不工作
<head>
<script type="text/javascript">
var Picture1 = new Image()
Picture1.src = "Traffic_Red.png"
var Picture2 = new Image()
Picture2.src = "Traffic_Amber.png"
var Picture3 = new Image()
Picture3.src = "Traffic_Green.png"
var Picture4 = new Image()
Picture4.src = "Traffic_Amber.png"
</script>
</head>
<body>
<p><img src="Traffic_Red.png" width="500" height="300" name="slide" /></p>
<script type="text/javascript">
var step=1;
function slideit()
{
document.images.slide.src = eval("image"+step+".src");
if(step<4)
step++;
else
step=1;
setTimeout("slideit()",3000);
}
slideit();
</script>
</body>发布于 2016-06-20 17:11:16
+step+(“image”.src“);
因此,您正在尝试访问image1.src
变量Picture1 =新图像()
…但你叫它Picture1而不是image1。
您只需要正确地指定变量名即可。
也就是说,使用eval创建变量是很糟糕的。只需使用数组即可。
为了支持id,图像的name属性已被弃用。
向setTimeout传递一个函数要比传递一个要计算的字符串更好。
<p><img src="Traffic_Red.png" width="500" height="300" id="slide" /></p>
<script>
var pictures = [new Image(), new Image(), new Image(), new Image()];
pictures[0].src = "Traffic_Red.png";
pictures[1].src = "Traffic_Amber.png";
pictures[2].src = "Traffic_Green.png";
pictures[3].src = "Traffic_Amber.png";
var step=0;
function slideit() {
document.getElementById('slide").src = pictures[step].src;
step++;
if (step >= 4) {
step = 0;
}
setTimeout("slideit", 3000);
}
slideit();
</script>发布于 2016-06-20 17:23:12
只需将变量名从Picture1、Picture2、Picture3重命名为...对image1,image2,image3同样是Ex;
替换:
<head>
<script type="text/javascript">
var Picture1 = new Image()
Picture1.src = "Traffic_Red.png"
var Picture2 = new Image()
Picture2.src = "Traffic_Amber.png"
var Picture3 = new Image()
Picture3.src = "Traffic_Green.png"
var Picture4 = new Image()
Picture4.src = "Traffic_Amber.png"
</script>
</head>通过以下方式:
<head>
<title>Test</title>
<script type="text/javascript">
var image1 = new Image()
image1.src = "Traffic_Red.png"
var image2 = new Image()
image2.src = "Traffic_Amber.png"
var image3 = new Image()
image3.src = "Traffic_Green.png"
var image4 = new Image()
image4.src = "Traffic_Amber.png"
</script>
</head>您的脚本如下所示:
<script type="text/javascript">
var step=1;
function slideit()
{
document.images.slide.src = eval("image"+step+".src");
step++;
if (step > 4) {
step = 1;
}
setTimeout("slideit()",3000);
}
slideit();
</script>https://stackoverflow.com/questions/37918267
复制相似问题