我尝试稍微改变菜单设置。 我的所有标签都必须有ID,以便可以移动它们。但是,当您在链接上运行鼠标时,它应该从底部为有一些文本的框设置动画。 如何让jquery找到指定的id,然后添加一个类来设置动画?
这是我的代码:
HTML:
<div id="right_nav">
<ul>
<li><a id="nav_1" href="#">#</a></li>
<li><a id="nav_2" href="#">#</a></li>
<li><a id="nav_3" href="#">#</a></li>
<li><a id="nav_4" href="#">#</a></li>
<li><a id="nav_5" href="#">#</a></li>
<li><a id="nav_6" href="#">#</a></li>
<li><a id="nav_7" href="#">#</a></li>
<li><a id="nav_8" href="#">#</a></li>
<li><a id="nav_9" href="#">#</a></li>
</ul>
</div>
CSS:
#right_nav { width:700px; height:auto; float:left;}
#right_nav ul { width:100%; height:100%; margin:0; padding:0;}
#right_nav ul li { list-style-type:none; float:left;}
#nav_1 { width: 250px; height:160px; background-color:#33CCCC; margin: 0px 0 0 5px; position:absolute;}
#nav_2 { width: 230px; height:400px; background-color:#66F; margin: -100px 0 0 260px; position:absolute;}
#nav_3 { width: 250px; height:100px; background-color:#693; margin: 329px 0 0 447px; position:absolute;}
#nav_4 { width: 200px; height:200px; background-color:#CC9; margin: 200px 0 0 29px; position:absolute;}
#nav_5 { width: 190px; height:300px; background-color:#F9C; margin: 0 0 0 510px; position:absolute;}
#nav_6 { width: 250px; height:200px; background-color:#CF0; margin: 450px 0 0 450px; position:absolute;}
#nav_7 { width: 150px; height:200px; background-color:#F99; position:absolute; margin: 320px 0 0 250px;}
#nav_8 { width: 220px; height:200px; background-color:#693; position:absolute; margin: 420px 0 0 0;}
#nav_9 { width: 150px; height:100px; background-color:#693; position:absolute; margin: 540px 0 0 250px;}
.hover { width:50px; height:25px; background-color:#993300; }
jQuery的:
$(document).ready(function() {
$("#right_nav ul li").hover(function(){
$('#right_nav ul li').addClass("hover");
},
function(){
$('#right_nav ul li').removeClass("hover");
});
});
我可以在第一个链接上添加.Hover但是如果我将鼠标放在其他链接上则不起作用
答案 0 :(得分:0)
如果您查看代码,您会看到您正在将所有类添加到所有LI,而不是您所悬挂的那个。试试这个:
$(document).ready(function() {
$("#right_nav ul li").hover(function(){
$(this).addClass("hover");
},
function(){
$(this).removeClass("hover");
});
});
答案 1 :(得分:0)
我会用:
更改你的最后一个CSS行#right_nav ul li:hover { width:50px; height:25px; background-color:#993300; }
所以你不需要任何JS来做这件事。
我不知道这实际上是否是您正在寻找的。您试图“动画”的“盒子”是什么/在哪里?沿着这些方向的东西可能是:
$(document).ready(function() {
$("#right_nav ul li").hover(function(){
//gets the hovered element's id
var hovered_li_id = $(this).attr('id');
//adds .hover to an element with id "hoverbox_nav_X" and then eventually animates it
$('#hoverbox_'+hovered_li_id).addClass('hover').animate( /*...*/ );
},
function(){
//removes .hover from wherever it was set and eventually resets any css the animation modified.
$('.hover').removeClass('hover').css( /*...*/ );
});