Javascript jquery使用百分比设置动画

Javascript jquery使用百分比设置动画,javascript,jquery,Javascript,Jquery,我正在做一个非常简单的动画,就像这样: $("article").animate({ left:"-=70" },1000) 这是可行的,它从当前的“左”值中减去70px。 但问题是,我需要一个百分比: $("article").animate({ left:"-=70%" },1000) 当然,这是行不通的。有工作吗 谢谢 编辑:添加了一个JSFIDLE: 假设您尝试了上述方法,但不起作用,您可以尝试计算实际值: $("article").animate({ left:

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

$("article").animate({
    left:"-=70"
},1000)
这是可行的,它从当前的“左”值中减去70px。 但问题是,我需要一个百分比:

$("article").animate({
    left:"-=70%"
},1000)
当然,这是行不通的。有工作吗

谢谢

编辑:添加了一个JSFIDLE:


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

$("article").animate({
  left: parseInt($(this).css('left'),10)*0.3
},1000)
解释:
$(this).css('left')
应该得到当前值,类似于
125px
,它通过
parseInt
删除
px
部分,然后乘以0.3得到它的30%(假设这就是你所说的-70%)

编辑:请参见此处可用的小提琴。请注意:

  • 因为我使用的是点击处理程序,所以我不能再使用
    这个
    ,所以我改为
    $('article')
  • 要设置动画的元素需要有一个非零的left初始值(否则数学将给出一个0值,并且不会发生动画)
  • 元素需要使用
    left
    值,因此需要相应地
    定位

如何使用宽度计算所需的值?您可以根据其父元素的宽度大致计算70%的像素数,但我不确定您想要70%的像素数。是现在的位置吗?其父级的宽度看起来不错,但会崩溃,请检查我设置的JSFIDLE。现在“left”是0,执行“left:-70%”将其向左移动,而“left:30%”将其向右移动。当然,这并不重要。举例说明。要使此方法正常工作,
left
首先需要有一个显式的非零值。