后,我有以下的jQuery代码jQuery的检查右位置动画结束
$('.sidebar-address').animate({
'right' : "+=500px"
});
var sideBarPos = $('.sidebar-address').css('right');
console.log(sideBarPos);
我想检查位置的动画结束后,但-500px每次返回,而不是应该给我值0
后,我有以下的jQuery代码jQuery的检查右位置动画结束
$('.sidebar-address').animate({
'right' : "+=500px"
});
var sideBarPos = $('.sidebar-address').css('right');
console.log(sideBarPos);
我想检查位置的动画结束后,但-500px每次返回,而不是应该给我值0
您需要的动画后,检查完毕,所以你需要把它放在动画的回调,如:
$('.sidebar-address').animate({
'right' : "+=500px"
},function(){
var sideBarPos = $(this).css('right');
console.log(sideBarPos);
});
否则您的代码在动画完成前正在运行。
你有两种可能性。为您的console.log和变量创建一个setTimeout函数,或者将其放入动画的回调函数中。
将代码放在回调中的示例(最佳解决方案)。
$('.sidebar-address').animate({
'right' : "+=500px"
},function(){
var sideBarPos = $('.sidebar-address').css('right');
console.log(sideBarPos);
});
示例使用setTimeout的,只是为了测试你的动画的结果:
$('.sidebar-address').animate({
'right' : "+=500px"
});
setTimeout(function() {
var sideBarPos = $('.sidebar-address').css('right');
console.log(sideBarPos);
}, 1000); // if animation is 900, put 1000.
在它之前显示的动画已经完成,你可以添加代码回调的情况下。
$('.sidebar-address').animate({
'right' : "+=500px"
}, ANIMATION-TIME, function() {
console.log($(this).css('right'));
);
将一个超时设置为console.log以查看它是在动画之前还是之后开始。 – 2013-03-25 16:27:46
内联(通过animate添加)和外部CSS值的权利值是多少? – 2013-03-25 16:30:49