我已经制作了一个onkeydown函数,它横向运行li元素块,它运行得很好,但是我需要当第一个和最后一个li块聚焦时左右键应该被禁用。
任何人都可以建议一种正确的方法吗? Thanx提前!!!
$(document).ready(function() {
var winht = $(window).height();
var contUl = $('.content ul').children('li').size();
var widLi = $('.content ul li').width();
var contUlAndLI = contUl * widLi;
var leftIndex = $('.content ul').css('left','0');
$('.content ul').width(contUlAndLI);
$('#frame').height(winht);
$("body").keydown(function(e) {
if(e.keyCode == 37) { // left
$(".content ul").animate({
left: "-=980"
});
}
else if(e.keyCode == 39) { // right
$(".content ul").animate({
left: "+=980"
});
}
});
if( leftIndex == 0){
$("body").keydown(function(e) {
if(e.keyCode == 39){ // right
//event.preventDefault();
return false;
}
});
}
});
工作参考是jsfiddle
答案 0 :(得分:1)
我是通过使用计数器来完成的,每当用户按下左或右时,都会检查其值。计数器只是li
标记内ul
元素的数量。
var ulCount = $('.content li').length - 1;
var i = 0;
如果我们在计数器的值内,则只运行动画:
if(e.keyCode == 37) { // left
if (i < ulCount) {
i++;
$(".content ul").animate({
left: "-=980"
});
}
}
else if(e.keyCode == 39) { // right
if (i > 0) {
i--;
$(".content ul").animate({
left: "+=980"
});
}
}
我也更新了jsFiddle。