jQuery动画“text-shadow”css属性

因此,当我使用jQuery的.animate()方法时,我已经了解到为了给左边距设置动画,你必须使用这样的东西:

 $('#thing').animate({marginLeft: 20}, 1000); 

这与使用css属性margin-left: 20px;

我如何在animate()使用text-shadow属性?

CSS转换是最好的方式,因为支持text-shadow的常用用户也支持转换。

在这种情况下,您只需设置过渡属性,然后使用JS或更改类来更改样式。

基本示例: http : //jsfiddle.net/adZ42/1/

有关将其改装为jQuery的更多信息: http : //css3.bradshawenterprises.com/legacy/

在浏览了一段时间并意识到几乎所有解决方案都存在于旧版本的JQuery之后,我放弃并编写了这些函数,这些函数主要用于500ms淡入或淡出的技巧:

  function AddShadow(ControlID) { for (i = 0; i < 11; i++) { setTimeout('$("#' + ControlID + '").css("text-shadow", "0 0 ' + i + 'px White");', i * 50); } } function RemoveShadow(ControlID) { for (i = 0; i < 11; i++) { setTimeout('$("#' + ControlID + '").css("text-shadow", "0 0 ' + (10 - i) + 'px White");', i * 50); } } 

然后你只需使用这样的JQueryhover处理程序来实现它:

 $('.class').hover(function () {AddShadow($(this).attr('id'))}, function () {RemoveShadow($(this).attr('id'))}; 

我唯一不喜欢它们的是,如果你快速地hover在物体上,它会在两个function之间交替闪烁,但至少它总是让它们处于不褪色的最终状态。

我的实现并不那么重要,所以我没有再进一步,但理论上可以通过向对象添加一个标志属性来解决这个问题,该属性设置最新的操作,然后让函数在每次执行时检查标志一步。

其他原因并不理想:

  • 由于必须弄乱循环和乘法器,因此更改时序或级别并不是非常直观
  • 它只做线性步骤
  • 这可能不是一种非常有效的方式。
  • 您想要使用这些函数的任何控件都必须具有ID,否则它将无法工作。

但从好的方面来看,它应该适用于每个JQuery版本并且它是稳定的。