我有以下代码:
jQuery.fn.shake = function(intShakes, intDistance, intDuration) {
this.each(function() {
$(this).css("position","relative");
for (var x=1; x<=intShakes; x++) {
$(this).animate({left:(intDistance*-1)}, (((intDuration/intShakes)/4)))
.animate({left:intDistance}, ((intDuration/intShakes)/2))
.animate({left:0}, (((intDuration/intShakes)/4)));
}
});
return this;
};
问题在于,当我应用它时,如果对象绝对位于中心,则会使对象跳转到页面的左侧。
这可以修复吗?以及如果可以?
答案 0 :(得分:3)
我认为在你的动画风格中使用“margin-left”而不是“left”会有更好的效果。如果第一次不能正常工作,您可能需要使用相对定位等
答案 1 :(得分:1)
您正在设置$(this).css("position","relative");
。通过设置position: relative
,您可以将元素移回文档流中的任何位置,然后将其相对于该位置进行定位。
对于绝对定位的元素,您需要保持它们的绝对值并根据当前位置计算移动。