0

对于包装在 jquery 对象中的 dom 元素,我需要获取当前位置,或者如果它当前正在动画,我需要获取它的结束位置。是否有任何方法可以访问对象传递作为 jquery.animate() 方法中的属性参数?或者我是否需要将这些对象存储在某个地方,以便以后可以查找给定的 dom 元素动画的位置?

4

2 回答 2

0

“动画”方法的标准参数之一是“完整”回调。

http://api.jquery.com/animate/

在“完整”函数内部,您可以通过将“this”包装在选择器中来获取当前元素,如下所示:

$("div").animate({
    "width": '500'
}, 3000, function() {
    $(this).css({"background-color":"black"});
});

http://jsfiddle.net/Ana5R/

根据您的需要,每个步骤都会调用一个“进度”函数。

于 2013-05-31T14:11:41.757 回答
0

想出了一种方法:

例如,如果我想将一个对象设置为在其当前位置右侧 50px 处或它走向的地方设置动画,我可以这样做:

var currentX=myJqueryObject.css("left");//Get the position it's currently at
myJqueryObject.finish();//finish the animation so its position instantly gets set to where its animating towards
var endx=parseInt(myJqueryObject.css("left"));//get its position now. If it wasn't animating when finish() was called then the call didn't change anything.
myJqueryObject.css("left",currentX);//set its position back to where it was before calling finish()
myJqueryObject.animate({left:endx+50});//now animate it 50px to the right of its current position or 50px to the right of the position it was animating towards
于 2013-05-31T14:19:28.960 回答