後,我有以下的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