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版本并且它是稳定的。