-1

我有这个 javascript 幻灯片,它与暂停/播放选项配合得很好:

<html>
<head>
<title>Simple Javascript Slideshow</title>
<script type="text/javascript">
var i = 0, imgsrc = new Array(), preload = new Array();
imgsrc[0]="photos/image1.png";
imgsrc[1]="photos/image2.png";
imgsrc[2]="photos/image3.png";
for (var j=0;j<imgsrc.length;j++)
{
preload[j] = new Image;
preload[j].src = imgsrc[j];
}
function mode(param)
{
smode=param;
}
function startSlideshow()
{
if(smode=="play")
{
document.getElementById("play").disabled="disabled";
document.getElementById("pause").disabled="";
document.getElementById("stop").disabled="";
document.getElementById("slideshow").src=imgsrc[i];
i++;
setTimeout("startSlideshow()",1000);
}
else if(smode=="pause")
{
document.getElementById("pause").disabled="disabled";
document.getElementById("play").disabled="";
document.getElementById("play").value="Resume";
}
else if(smode=="stop")
{
document.getElementById("play").disabled="";
document.getElementById("play").value="Play";
document.getElementById("pause").disabled="disabled";
document.getElementById("stop").disabled="disabled";
document.getElementById("slideshow").src=imgsrc[0];
i=0;
}
if(i==imgsrc.length)
{
i=0;
}
}
</script>
</head>
<body>
<img id="slideshow" src="photos/Aanimation-ir001.png" />
<br />
<input id="play" type="button" value="Play" onclick="mode('play');startSlideshow();" />
<input id="pause" type="button" value="Pause" disabled="disabled" 
onclick="mode('pause');startSlideshow();" />
<input id="stop" type="button" value="Stop" disabled="disabled" 
onclick="mode('stop');startSlideshow();" />
</body>
</html>

有一个倒带/前进(下一个/上一个图像)选项与暂停选项一起使用会很棒。

那可能吗?

亲切的问候

4

2 回答 2

0

你应该能够用你当前的代码弄清楚。

这里有一些提示:

当前显示的图像由此定义:

document.getElementById("slideshow").src=imgsrc[i];

如果当前显示的图像有索引i,那么下一张有什么索引?上一张呢?

解决此问题后,您必须将新函数(或现有函数的新案例)绑定到 HTML 标记,就像您在此处所做的那样:

<input id="next" type="button" value="Next" onclick="mode('next');" />

附带说明一下,如果您显示最后一张(或第一张)图像并按下一张(或上一张),您应该注意会发生什么。

希望有帮助。

于 2016-03-11T17:10:51.140 回答
0

想我现在明白了:

这就是我得到的转发选项:

if(smode=="next")
{
document.getElementById("play").disabled="";
document.getElementById("pause").disabled="";
document.getElementById("stop").disabled="";
document.getElementById("next").disabled="";
document.getElementById("slideshow").src=imgsrc[i++];

}

并且向后:

  if(smode=="pre")
    {
    document.getElementById("play").disabled="";
    document.getElementById("pause").disabled="";
    document.getElementById("stop").disabled="";
    document.getElementById("next").disabled="";
    document.getElementById("slideshow").src=imgsrc[i--];

    }

为了避免从 0 到 -1、-2 等等,我得到了这个:

如果(我==-1){

我= 23;

}

但是:当我向后按时,它会在第一次单击时向前,然后在第二次单击时向后?

问候

于 2016-03-11T18:22:10.243 回答