工作演示CLick
$(document).ready(function(e) {
$('span#pijlr, span#pijll').show();
$('#gallery').css('overflow','hidden');
$('span#pijlr').click(function(e) {
if (!$('#gallcont').is(':animated')) {
var slide = 490;
var variable = $('#gallcont').css('left');
var urechts = "-980px";
if(variable > urechts) {
$('#gallcont').animate({'left': '-=' +slide+ 'px'},'fast','linear');
}
}
});
$('span#pijll').click(function(e) {
if (!$('#gallcont').is(':animated')) {
var slide = 490;
var variable = $('#gallcont').css('left');
var ulinks = "0";
if(variable < ulinks) {
$('#gallcont').animate({'left': '+=' +slide+ 'px'},'fast','linear');
}
}
});
});
问题在于下一个按钮(span#pijlr)。如果我点击一次它会想到它,并且将会过去-490px但是当我再次点击它没有做任何事情。我尝试调整变量urechts,但是当我增加数量大约-1000px时它会起作用,除非它超出了它的限制。
答案 0 :(得分:2)
这是你的问题:
if(variable > urechts) {
variable
和urechts
是字符串,您无法用数字比较它们。
使用parseInt
将行更改为类似值,以获取数值:
if(parseInt(variable) > parseInt(urechts)) {
你也可以将urechts / ulinks改为整数,只做一次parseInt:
var urechts = "-980px";
if(parseInt(variable) > urechts) { ... }
修复示例:http://jsfiddle.net/jtbowden/sVqNq/5/
修改 :有人指出这在Chrome中不起作用。这是因为如果没有明确定义,Chrome会在第一次调用时返回“自动”作为left()
值。只需将left: 0px
添加到.pol
的css即可。否则,您需要在代码中检查“自动”。