我不知道为什么,但悬停“out”函数中的animate()似乎从0
值开始,而不是16
,它应该由悬停“in”设置“功能:
$.fx.step.textShadowBlur = function(fx) {
$(fx.elem).css({textShadow: '0 0 ' + Math.floor(fx.now) + 'px #000'});
};
$('a').hover(function(){
$(this).stop().animate({textShadowBlur:16}, {duration: 400});
}, function(){
$(this).stop().animate({textShadowBlur:0}, {duration: 900});
});
因此我在鼠标输出时出现了突然的文本阴影更改,没有动画
我做错了什么?
$('a').hover(function(){
$(this).stop().animate({nothing:16}, {duration: 400, step: function(now, fx){
$(this).css({textShadow: '0 0 ' + Math.floor(fx.now) + 'px #000'});
}});
}, function(){
$(this).stop().animate({nothing:0}, {duration: 900, step: function(now, fx){
$(this).css({textShadow: '0 0 ' + Math.floor(fx.now) + 'px #000'});
}});
});
答案 0 :(得分:2)
您的语法无效。您目前正在关闭鼠标悬停功能后关闭hover
事件。
尝试:
$('a').hover(
function(){
$(this).stop().animate({textShadowBlur:16}, {duration: 400});
},
function(){
$(this).stop().animate({textShadowBlur:0}, {duration: 900});
});
答案 1 :(得分:2)
看起来像语法问题
$('a').hover(function() {
$(this).stop().animate({textShadowBlur: 16}, {duration: 400});
// remove the extra }});
}, function() {
$(this).stop().animate({textShadowBlur: 0}, {duration: 900});
});
击> <击> 撞击>
修改强>
看起来你已经找到了解决办法,这里有一个用css 3过渡来做这个效果的选项:
a {
font-size:40px;
text-shadow:0 0 0 #000;
-webkit-transition:text-shadow .9s linear;
}
a:hover {
text-shadow:0 0 16px #000;
-webkit-transition:text-shadow .4s linear;
}