我有一个导航菜单
<ul>
<li id="menu1">content</li>
<li id="menu2">content</li>
<li id="menu3">content</li>
<li id="menu4">content</li>
</ul>
我想使用jQuery,这样当我将鼠标悬停在li项目上时,前一个和后一个兄弟姐妹的风格会发生变化。
EG;当我将鼠标悬停在.menu2上时,.menu1和.menu3的边界半径变为8px。
我知道我不能用纯CSS做这个,但是使用jQuery的脚本是什么?
答案 0 :(得分:2)
这将是一个更容易的解决方案。在css中添加一个带有样式的类,并使用jQuery在hover上切换该类。
的jQuery
$(document).ready(function(){
$('.menu li').hover(function(){
$(this).prev().toggleClass('large-border');
$(this).next().toggleClass('large-border');
});
});
HTML(向父级添加一个类):
<ul class="menu">
<li class="menu1">content</li>
<li class="menu2">content</li>
<li class="menu3">content</li>
<li class="menu4">content</li>
</ul>
在CSS中添加一个包含属性的类:
.large-border {
border-radius: 8px;
border: 1px solid red;
}
这是一个有效的fiddle
答案 1 :(得分:1)
你可以尝试像
这样的课程jQuery(document).ready(function(){
jQuery("div").hover(
function(){
jQuery(this).addClass("active");
jQuery("div").not(".active").addClass("otherdeactive");
},
function(){
jQuery(this).removeClass("active");
jQuery("div").not(".active").removeClass("otherdeactive");
});
});
答案 2 :(得分:0)
你可以使用这个jquery:
$('ul li a').hover(function(){
(this).next().css('border-radius','8px');
(this).prev().css('border-radius','8px');
},function(){
(this).next().css('border-radius','0px');
(this).prev().css('border-radius','0px');
});