如何使用jQuery同时为宽度设置动画并计算新的左侧位置?

时间:2011-08-21 14:37:43

标签: javascript jquery jquery-animate

我在jQuery中的animate()函数有问题:

$(this).addClass(activeClass).animate({
  position: 'absolute'
  width: '200%',

//Here is the problem. I need the new outerWidth(true) 
//(Width+Padding+Margin+Border) of the animated element to calculate 
//the new position. I want it to be centered from it's old position. 
//But it is still using the current outerWidth.

  left : -($(this).outerWidth(true)-defaultOuterWidth)/2

});

示例:

假设我有一个div,我希望将其调整为200%。 div的开头边距为20px,宽度为200px。

应用“activeClass”之后,边距现在可能是40px宽,它现在有一个边框,新宽度为400px,因为animate()函数说的是这样;)

因此,在动画中我需要新的outerWidth(true)来计算新位置。

任何解决方案?

1 个答案:

答案 0 :(得分:0)

我认为您可以使用动画的自定义“步进”功能对左侧位置进行自己的计算。它在这里描述:http://api.jquery.com/animate/