用jquery动画-offset.left不更新
|
我正在尝试在屏幕上以多个步骤为对象设置动画,直到它到达其目标为止。但是,offset.left值不会动态更改(或者我做错了,很有可能)。
这就是我所拥有的
var initialOffset = $(\'#puzzle-transition-object\').offset(); //thing to move
var terminalOffset = $(\'#puzzle-container\').offset(); //thing to touch
var dtt = terminalOffset.left - initialOffset.left; //distance to travel
var stepSegment = \"+=\" + Math.ceil(dtt/8) + \"px\"; //in left: css format
function bringOutTheDiv(){
var currentDivPosition = $(\'#puzzle-transition-object\').offset();
if(currentDivPosition.left < terminalOffset.left){
console.log(\"current position\"+currentDivPosition.left+\": \"+terminalOffset.left);
takeAStep();
}
}
function takeAStep(){
$(\'#puzzle-transition-object\').animate({
left: stepSegment,
}, {
duration: 50,
complete: function() {
//console.log(\"completed a step\");
}
});
bringOutTheDiv();
}
我确实在一个while循环中使用了它,但是将其分解为另一个函数。基本上,currentDivPosition.left不会更新,并且我会得到一个堆栈溢出错误,尽管div确实一直在屏幕上移动。
谢谢!
没有找到相关结果
已邀请:
1 个回复
梆晨灸碾
让您在回叫内循环通话-应该有所帮助:)