jQuery:从当前不透明度淡出
我在 mouseOver
上将对象从 0% 淡入到 100%,并在 mouseOut
上淡出到 0%。
当我快速执行 mouseIn
和 mouseOut
操作时,效果会“跳跃”,因为 mouseOut
从 100% 淡出 - 而且因为我执行了快速操作mouseIn
和 mouseOut
,淡入不会一直淡出到 100%。也许它只会褪到 25% 或 10%。
我的问题是: 如何使淡出仅从特定百分比淡出?
如果 fadeIn
仅达到 20,则 fadeOut
应从 20 fadeOut
。
I'm fading an object from 0% to 100% on mouseOver
, and fade back out to 0% on mouseOut
.
When I do a quick mouseIn
and mouseOut
, the effect "jumps" because mouseOut
is fading out from 100% - and because I do a quick mouseIn
and mouseOut
, the fade in doesn't fade all the way to 100%. Maybe it only fades to 25% or 10%.
My question is:
How can I make the fadeout only fading from the specific percentage?
If the fadeIn
only gets to 20, the fadeOut
should fadeOut
from 20.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
你可以尝试这样做:
...而不是 fadeOut()。
You could try doing:
...instead of fadeOut().
我不确定您当前的代码是什么样的,但您需要使用 jQuery .animate() 函数:
http://api.jquery.com/animate/
这是一个示例:
I'm not sure what your current code looks like, but you'll want to use the jQuery .animate() function:
http://api.jquery.com/animate/
Here is an example:
使用 jQuery 的
.fadeTo()
方法 可以设置目标不透明度。第一个参数是速度,第二个参数是不透明度。
如果您使用
.hover()
您可以这样做:示例: http://jsfiddle.net/ecUdS/
这个 使用
.stop( )
停止动画(如果正在运行)。然后 因为
.hover()
将为mouseenter 触发
和mouseleave
,我添加了一个测试,如果它是mouseenter
,它将发送true
(这相当于>1
)。否则,它发送false
或0
。Use jQuery's
.fadeTo()
method which lets you set a target opacity.The first argument is the speed, the second is the opacity.
If you're using
.hover()
you could do it like this:Example: http://jsfiddle.net/ecUdS/
This uses
.stop()
to stop the animation if it is running.Then because
.hover()
will fire for both themouseenter
andmouseleave
, I added a test where if it is amouseenter
, it will sendtrue
(which will equate to1
). Otherwise it sendsfalse
or0
.我曾经也遇到过同样的问题。你不能真正使用 jQuery 的 animate 函数,因为它总是想要完成动画。所以我为它编写了自己的函数..希望这会有所帮助(我也没想到有一天会分享这个,所以它的编写是为了适合我的使用方式):
示例
http://jsfiddle.net/3AxHb/
I had this same issue once upon a time. You can't really use jQuery's animate functions because it always wants to complete the animation. So I wrote my own function for it.. hope this helps (also I wasn't expecting to share this someday, so it has been written to be suited to how I was using it):
Examples
http://jsfiddle.net/3AxHb/