如何使用jquery淡出除所选元素之外的任何内容?
我有一些像这样创建的 li 元素:
echo '<ul>';
foreach ($test as $value){
echo '<li class="li_class">.$value['name'].</li>';
}
echo '</ul>';
这会给我:
<li class="li_class">name1</li>
<li class="li_class">name2</li>
<li class="li_class">name3</li>
...
我想要做的是,当我将鼠标悬停在 li 元素上时,所有其他 li 元素淡出约 50%。
我可以有 2 个类并使用 jquery 来更改它们:
.li_class{
background: #ccc;
}
.fade{
opacity: .5;
}
但是我不知道如何告诉 jquery 将 .fade
类添加到所有其他 li,但不是我用鼠标悬停的那个类。
有什么想法吗?还有另一种方法可以做到这一点吗?
编辑:
感谢大家,我想出了这个:
$(document).ready( function () {
$('.li_class').hoverIntent(function(){
$(this).removeClass('fade').siblings().animate({ opacity: 0.5 }, 500);
},function(){
$(this).siblings().andSelf().animate({ opacity: 1 }, 100);
});
});
使用 hoverIntent
插件。
i have a few li elements created like this:
echo '<ul>';
foreach ($test as $value){
echo '<li class="li_class">.$value['name'].</li>';
}
echo '</ul>';
this will give me:
<li class="li_class">name1</li>
<li class="li_class">name2</li>
<li class="li_class">name3</li>
...
what i want to do is when i hover over a li element all other li elements to fade out about 50%.
i could have 2 classes and use jquery to change them:
.li_class{
background: #ccc;
}
.fade{
opacity: .5;
}
bur i don't know how to tell jquery to add the .fade
class to all other li but not the one i am hovering with the mouse.
any ideas? is there another way of doing this?
edit:
thanks to you all i came up with this:
$(document).ready( function () {
$('.li_class').hoverIntent(function(){
$(this).removeClass('fade').siblings().animate({ opacity: 0.5 }, 500);
},function(){
$(this).siblings().andSelf().animate({ opacity: 1 }, 100);
});
});
using the hoverIntent
plugin.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
试试这个。
Try this.
JSFiddle 演示
JSFiddle DEMO
像这样的事情应该做。使用悬停():
Something like this should do. use hover():
如果你想让它执行得更快一点,请使用
on()
代替:Well if you wanna make it execute slightly faster use
on()
instead: