我已经习惯通过执行以下操作来编写我的 jquery 动画。
使用 css 或 javascript 设置元素的初始状态(宽度、高度、顶部、左侧、不透明度等)。这个初始状态是动画结束时的状态。
使用持续时间为 0 的 .animate 将元素移动到元素处于动画开头的状态。
使用具有适当持续时间的常规 .animate 来制作动画,最后,元素会回到步骤 1 中的状态。
这是一个例子。
/* css file */
.animatedObject
{
width:60%;
}
// javascript file
$('.animatedObject')
.animate({width: '-=20%'}, 0)
.animate({width: '+=20%'}, 1000);
至少对我来说,使用此代码有几个优点。首先,我很清楚我想要制作什么动画。其次,如果禁用了 javascript,则该对象将处于动画的结束状态,这通常是我希望它优雅降级的地方。第三,对象可以稍微改变位置以使用 css 进行调整,并且动画看起来仍然大致相同。
我不使用 .css 的原因是,如果我尝试用 .css 方法将动画替换为 0 持续时间,我会得到不同的动画起点。我认为它不支持 += 或 -=,或者如果支持,它的行为会有所不同。
那么,这是一个很好的方法吗?什么是行业标准方式?