2011-11-18 16 views
0

我有我的工作水平導航菜單。這個菜單還剩下一個問題。當用戶導航到頁面時,我希望主要li保持懸停。現在,李不停留在懸停狀態,並簡單地恢復到默認狀態。我是否需要爲身體提供一個班級來完成這項工作,或者有另一種方法嗎?代碼片段可以在這裏找到:http://jsfiddle.net/SeasonEnds/LSmfN/主要資產淨值發生在hover樣式在頁面加載

理想情況下,讀取選項卡應該在加載頁面時採用懸停樣式,但當用戶將鼠標懸停在其他主導航鏈接上時應該採用懸停樣式。

+0

CSS類會是這樣的UL #topnav li.on {背景:#f3f3f3;}#UL topnav li.on A {COLOR:#828282;}但是當你徘徊。對遺體徘徊這不是我想要它做的事類。 – SeasonEnds

回答

0

的有源元件上的亮點,當用戶在另一個頂級鏈接徘徊,因爲這是不好的可用性應該不是真的消失 - 如果用戶沒有點擊一個鏈接,然後他們已經失去了視覺線索至於他們在您的網站上的位置。

我已經修改了CSS略:

ul#topnav li.on a {color:#828282; background: #f3f3f3; } 
ul#topnav li a:hover {background: #f3f3f3; color:#828282;} 
ul#topnav li a:visited {color:#828282; } 

我也平添了幾分的jQuery的保留活動的頂級鏈接的顏色,你將鼠標懸停在孩子:

$("li a").hover(function(){ 
    $(this).parent().prev().toggleClass("top-level-highlight"); 
}); 

更新小提琴: http://jsfiddle.net/LSmfN/14/

+0

我覺得我最喜歡這個解決方案。我想你可能是正確的關於這個鏈接消失。唯一的問題是在頂級導航欄中有多個灰色背景的鏈接看起來很糟糕。所以,我改變了其他的徘徊白色下劃線,沒有背景變化。現在,它看起來很不錯,而且效果很好。謝謝! – SeasonEnds

0

有沒有辦法知道的菜單是不上在服務器設置激活菜單元素的頁面,或JS表示活動元素。

這裏是你可以做什麼 - 添加一個類「這裏」來表示當前位置:

ul#topnav li:hover, ul#topnav li.here {background: #f3f3f3; 

使用JS檢測當前頁:

//var here = document.location+"" //for production 
var here = "/home.html" //for testing 
if(here.indexOf("home.html")>-1) { 

    $('ul#topnav li').eq(0).addClass('here') 
    $('ul#topnav li').mouseout(function() { 
      $('ul#topnav li').removeClass('here') 
    }) 
} //repeat for all pages 
+0

我也很喜歡這個解決方案。唯一的問題是,當我將鼠標懸停在菜單上,然後將鼠標移出菜單時,導航欄不再被高亮顯示。另外,我覺得我有盤旋的時候比其他頂級-NAV項目並沒有真正使任何意義上的鏈接消失的方式。謝謝你的時間! – SeasonEnds

相關問題