1
我想僅在包含子菜單的菜單鏈接旁邊添加一個箭頭。我希望圖像通常顯示爲向下箭頭,然後在盤旋時變成向上箭頭圖像。jQuery - 我如何用我的菜單代碼(也使用cufon)創建一個子菜單指示箭頭圖像?
我設法得到一個「+」符號,只在菜單上顯示子菜單,但我不知道如何處理懸停更改部分或如何添加圖像而不是文本符號。
HTML:
<div id="menu">
<ul class="topnav">
<li><a href="index.html"><img src="images/home.gif" width="75" height="50" alt="Home Page" /></a></li>
<li><h6><a href="services.html">Top Menu</a></h6>to help you
<ul class="subnav">
<li><a href="link.html">Link</a></li>
<li><a href="link2.html">Link2</a></li>
</ul>
</li>
</ul>
的jQuery:
//menu sub navigation
$(document).ready(function(){
$("#menu ul li h6").hover(function() { //When trigger is hovered...
//Following events are applied to the subnav itself (moving subnav up and down)
$(this).parent().find("ul.subnav").slideDown('fast').show(); //Drop down the subnav on click
$(this).parent().hover(function() {
}, function(){
$(this).parent().find("ul.subnav").slideUp('slow'); //When the mouse hovers out of the subnav, move it back up
});
//Following events are applied to the trigger (Hover events for the trigger)
}).hover(function() {
$(this).addClass("subhover"); //On hover over, add class "subhover"
}, function(){ //On Hover Out
$(this).removeClass("subhover"); //On hover out, remove class "subhover"
});
});
CSS:
#menu ul { height:50px; color:#FFF; }
#menu ul li { float:left; padding: 0 36px 0 0; position: relative; }
#menu li ul.subnav { position: absolute; left: 0; top: 44px; background- color:#505050;
margin: 0; padding:0; display: none; float: left; width: 120px; z-index:100; -moz-border-radius-bottomleft:8px; -moz-border-radius-bottomright:8px; -webkit-border- bottom-left-radius:8px; -webkit-border-bottom-right-radius:8px; border-top:none; border-bottom:1px solid #444444; border-left:1px solid #444444; border-right:1px solid #444444; height:auto; }
#menu li ul.subnav li { margin: 0; padding: 0; clear: both; width: 120px; z-index:5; border-top:1px solid #444444; }
#menu li ul.subnav li a { margin: 0; padding: 0 10px; float: left; width: 120px; z-index:135; line-height:30px; text-align:left; }
#menu li.current li a { color:#3f3f3f; }
.width_280 { width:280px; }
.margin_0_20_0_0 { margin:0 20px 0 0; }
感謝您的幫助。
謝謝,這是我最初嘗試,但它對準我的菜單(當然我可以很容易地修復)。也許過度思考這一點。我試圖使用jQuery自動添加「.find」而不是手動使用css。我如何使用「.find」來定位我的jQuery代碼的子菜單並添加一個箭頭類而不會搞亂「subhover」類? – Alison 2012-03-01 13:48:59
至少在你開始時,最簡單的方法就是讓jQuery在懸停上添加類,並使用CSS進行樣式設計。我可能會嘗試保持概念(和命名)截然不同:我會添加一個「懸停」類和一個「打開」類(對於打開子菜單的菜單項)。你也可能有一個「has_submenu」類。這樣你就可以按照你想要的方式獲得所有樣式。在你開始工作之後,你可能會刪除一些這樣的粒度 - 但是如果你在開發時將所有這些不同的概念模糊在一起,它會更混亂。 – ndp 2012-03-01 17:36:05