使用jQuery中的%定位的.css和.animate之间的奇怪区别

时间:2013-07-15 18:36:52

标签: jquery html jquery-ui

我有这个代码按预期工作。请注意,第一个动画有0个持续时间。

$(".myClass").animate({'top': '-=100%'}, 0).animate({top: '+=100%'}, 500);

基本上,我想放置一个带有类myClass的元素,如果禁用了javascript,它将被正确定位。如果启用了javascript,我首先会让元素从容器外部开始并将其置于原始位置。我尝试使用此代码。

$(".myClass").css({'top': '-=100%'}).animate({top: '+=100%'}, 500);

我期待这两个会做同样的事情,但.css方法的行为方式不同。就像使用百分比时一样, - = 100%,.css表示元素高度的-100%,而.animate表示元素容器高度的-100%。

这应该是这样工作还是我做错了什么。可根据要求提供更多代码。

2 个答案:

答案 0 :(得分:3)

它应该以这种方式工作AFAIK。 CSS属性不使用+ =和 - =运算符,因为它设置的是硬值而不是接近或计算一个(如动画)。

答案 1 :(得分:0)

对于animate()中的相对动画,我们只能使用+ =,-=,而css()不允许这样做。因此这不适用于您