我正在制作一个网站幻灯片轮播器。轮播器本身运行良好,但我想用键盘上的左/右箭头键使幻灯片向前/向后滑动。我的代码如下:
我的代码可以正常运行,但只能使用一次。我可以向左旋转一次或向右旋转一次,但在这之后,我不能再次使用同一个按键,直到按下另一个按键为止。我对Javascript输入非常陌生,是否有简单的解决方法?
这是临时网站。现在它很混乱,但我可以很好地处理所有奇怪的排序问题和布局问题。 http://technoheads.org/test/ice/
$(document).keydown(function(e){
var currentPosition = 0;
var slideWidth = 836;
var slides = $('.slide');
var numberOfSlides = slides.length;
var animLength = 600;
if (e.keyCode == 37) {
currentPosition = currentPosition-1;
// Check to see if new position is unbounded, and wrap accordingly.
checkForEnds(currentPosition);
// Move slideInner using margin-left
$('#slideInner').animate({
'marginLeft' : slideWidth*(-currentPosition)
}, animLength, 'easeOutExpo');
animLength=600;
return false;
}
/*Same code for right button, removed to save space.*/
function checkForEnds(position){
// If left is clicked on first slide, wrap to end.
if(position==-1){currentPosition = numberOfSlides-1, animLength=1000}
// If right is clicked on last slide, wrap to beginning.
if(position==numberOfSlides){currentPosition = 0, animLength=1000}
}
});
我的代码可以正常运行,但只能使用一次。我可以向左旋转一次或向右旋转一次,但在这之后,我不能再次使用同一个按键,直到按下另一个按键为止。我对Javascript输入非常陌生,是否有简单的解决方法?
这是临时网站。现在它很混乱,但我可以很好地处理所有奇怪的排序问题和布局问题。 http://technoheads.org/test/ice/
var
语句时,你定义了一个块级作用域变量; 如果你不使用var
,则会获取可用的变量(如果有)。 - MarioRicalde