Javascript jquery动画背景位置-首先获取当前背景位置的问题
当用户单击按钮时,我试图从元素的当前位置设置元素背景的动画。我可以在第一次单击时执行此操作,但随后的单击失败 这是我的密码Javascript jquery动画背景位置-首先获取当前背景位置的问题,javascript,jquery,jquery-animate,background-position,Javascript,Jquery,Jquery Animate,Background Position,当用户单击按钮时,我试图从元素的当前位置设置元素背景的动画。我可以在第一次单击时执行此操作,但随后的单击失败 这是我的密码 var testme; $(document).ready(function(){ $(".navleft").live("click", function() { testme = parseInt($(this).css("background-position").replace("% 0%", "").replace("px 0%
var testme;
$(document).ready(function(){
$(".navleft").live("click", function() {
testme = parseInt($(this).css("background-position").replace("% 0%", "").replace("px 0%", ""));
$(this).parent().animate({backgroundPosition: (testme + 297) + "px"}, 500);
$(this).parent().find("p").text(testme);
});
});
编辑:
正如下面所建议的,除非您使用IE,在每次单击时它都会重置为0,然后再次设置动画,否则效果非常好
这是我的意思的链接
解决方案(由于被推向正确的方向):
应首先停止上一个动画,然后开始新的动画:
$(this).parent().stop(true, true).animate({backgroundPosition:...
此外,如果需要将297像素添加到当前背景位置,则无需读取当前位置,如下所示:
$(this).parent().animate({backgroundPosition: "+=297"}, 500);
这不是问题所在。。。我认为问题在于在第二次单击时设置testme变量。我认为我的替换不起作用,因为我正在尝试替换一些不存在的东西。嗯,奇怪的是,IE:-/,如果你在jsFiddler.net中模拟它,测试它会更容易。
$(this).parent().stop(true, true).animate({backgroundPosition:...
$(this).parent().animate({backgroundPosition: "+=297"}, 500);