【发布时间】:2014-12-21 18:59:51
【问题描述】:
所以我有这个代码。我做错了什么。我想让左箭头返回(显示上一张图片),但它不起作用。它显示下一个图像(如右箭头)。无论我点击什么箭头,向左或向右,它都会显示下一个图像。我已经尝试了数百万种不同的方法,但似乎找不到问题所在。谁能帮帮我?
我也喜欢循环播放源。当到达数组的最后一个源时,我想再次循环回到第一个源(当你到达第一个源时再循环到最后一个源)。
顺便说一句,我还有一个代码,用于在点击时更改图像。我很确定这与问题无关,但我决定保留它,以防万一它搞砸了。
谢谢你:)
HTML:
<div class="container">
<div id="slideshow">
<img alt="slideshow" src="1.jpg" id="imgClickAndChange" onclick="changeImage()"/>
</div>
</div>
JS:
<script>
var imgs = ["2.jpg", "3.jpg", "4.jpg", "5.jpg"];
function changeImage(dir) {
var img = document.getElementById("imgClickAndChange");
img.src = imgs[imgs.indexOf(img.src) + (dir || 1)] || imgs[dir ? imgs.length - 1 : 0];
}
document.onkeydown = function(e) {
e = e || window.event;
if (e.keyCode == '37') {
changeImage(-1) //left <- show Prev image
} else if (e.keyCode == '39') {
changeImage() // right -> show next image
}
}
</script>
<script language="javascript">
var imgs = ["2.jpg", "3.jpg", "4.jpg", "5.jpg"];
function changeImage() {
document.getElementById("imgClickAndChange").src = imgs[0];
imgs.push(imgs.shift())
}
</script>
【问题讨论】:
-
你重新定义了
changeImage,它不能处理前进或后退。 -
那我怎样才能让它来回前进呢?
标签: javascript html keyboard slideshow onkeypress