JQuery 淡入淡出循环太慢
我有 7 个按钮(一开始都是完全不透明的),当鼠标进入一个按钮时,我希望除了悬停的按钮之外的所有按钮都淡入到 0.4。唯一的问题是,fadeTo 效果(在我编码的以下循环中)似乎是按顺序工作的,因此我留下了缓慢的淡入淡出效果,根本没有非常灵敏。
$('.button').mouseenter(function (event) {
$('#' + $(event.target).attr('id')).fadeTo(200, 1);
$('.button').each(function (i, obj) {
if ($(this).attr('id') != $(event.target).attr('id'))
$(this).fadeTo(200, 0.4);
});
});
我有什么想法可以通过另一种方式实现这一点吗?
I have 7 buttons (all of full opacity to begin with), when the mouse enters one button I want all buttons apart from the button that's being hovered over to fade to 0.4. Only problem is is that it appears that the fadeTo effect (in the following loop I've coded) is working sequentially, so I'm left with a sluggish fade effect, not very responsive at all.
$('.button').mouseenter(function (event) {
$('#' + $(event.target).attr('id')).fadeTo(200, 1);
$('.button').each(function (i, obj) {
if ($(this).attr('id') != $(event.target).attr('id'))
$(this).fadeTo(200, 0.4);
});
});
Any ideas how I can achieve this another way??
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
这是一种更简单的方法:
JSFiddle 示例
当您没有悬停时淡入所有按钮然后用 id
buttonContainer
包围 div 中的任何按钮,该按钮没有填充,并且此代码应该可以工作:带有 mouseleave 的 JSFiddle 示例
This is a much simpler way of doing it:
JSFiddle Example
To fade in all the buttons when you arent hovering over any of then surround the buttons in a div with the id
buttonContainer
which has no padding and this code should work:JSFiddle Example with mouseleave
请参阅示例小提琴: http://jsfiddle.net/3ZtAC/
See example fiddle : http://jsfiddle.net/3ZtAC/
我认为你可以使用 :not 选择器在没有循环的情况下做到这一点
希望这样会更快。
I think you can do this without a loop using the :not selector
Hopefully it will be faster this way.
HTML
CSS
脚本
示例 http://jsfiddle.net/euKkS/
HTML
CSS
SCRIPT
SAMPLE http://jsfiddle.net/euKkS/