0

我正在做一个非常简单的动画,就像这样:

$("article").animate({
    left:"-=70"
},1000)

这有效,它从当前的“左”值中减去 70px。但问题是,我需要它是一个百分比:

$("article").animate({
    left:"-=70%"
},1000)

当然,这是行不通的。有什么解决办法吗?

谢谢!

编辑:添加了一个jsfiddle:

http://jsfiddle.net/ZsU37/

4

1 回答 1

1

假设您已尝试上述方法但不起作用,您可以尝试计算实际值:

$("article").animate({
  left: parseInt($(this).css('left'),10)*0.3
},1000)

解释:$(this).css('left')应该得到当前值,类似于125px,通过它parseInt来移除px部分,并乘以 0.3 得到它的 30%(假设它是你的意思 -70%)

编辑:见在这里工作的小提琴http://jsfiddle.net/demaf/。请注意:

  • 因为我使用的是点击处理程序,所以我不能再使用this,所以我改成了$('article').
  • 要动画的元素需要有一个非零的 left 初始值(否则数学会给出 0 值并且不会发生动画)
  • 元素需要使用该left值,因此需要position相应地编辑
于 2013-03-18T18:34:08.717 回答