Superfish高亮顯示當前頁面的菜單項

Superfish是一個不錯的jQuery下拉菜單插件,被廣泛用於各種網站項目,但是其一個顯著不足是無法爲當前頁面的菜單項添加高亮顯示效果,本文將介紹如何解決這個問題。

關鍵字:Superfish菜單高亮、Superfish高亮顯示當前頁面的菜單項、Superfish高亮。

superfish的使用很簡單,其參數如下:

  1. $.fn.superfish.defaults = {   
  2.   popUpSelector: 'ul,.sf-mega',      // selector within menu context to define the submenu element to be revealed   
  3.   hoverClass:    'sfHover',          // the class applied to hovered list items   
  4.   pathClass:     'overideThisToUse', // the class you have applied to list items that lead to the current page   
  5.   pathLevels:    1,                  // the number of levels of submenus that remain open or are restored using pathClass   
  6.   delay:         800,                // the delay in milliseconds that the mouse can remain outside a submenu without it closing   
  7.   animation:     {opacity:'show'},   // an object equivalent to first parameter of jQuery’s .animate() method. Used to animate the submenu open   
  8.   animationOut:  {opacity:'hide'},   // an object equivalent to first parameter of jQuery’s .animate() method Used to animate the submenu closed   
  9.   speed:         'normal',           // speed of the opening animation. Equivalent to second parameter of jQuery’s .animate() method   
  10.   speedOut:      'fast',             // speed of the closing animation. Equivalent to second parameter of jQuery’s .animate() method   
  11.   cssArrows:     true,               // set to false if you want to remove the CSS-based arrow triangles   
  12.   disableHI:     false,              // set to true to disable hoverIntent detection   
  13.   onInit:        $.noop,             // callback function fires once Superfish is initialised – 'this' is the containing ul   
  14.   onBeforeShow:  $.noop,             // callback function fires just before reveal animation begins – 'this' is the ul about to open   
  15.   onShow:        $.noop,             // callback function fires once reveal animation completed – 'this' is the opened ul   
  16.   onBeforeHide:  $.noop,             // callback function fires just before closing animation – 'this' is the ul about to close   
  17.   onHide:        $.noop,             // callback function fires after a submenu has closed – 'this' is the ul that just closed   
  18.   onIdle:        $.noop,             // callback function fires when the 'current' submenu is restored (if using pathClass functionality)   
  19.   onDestroy:     $.noop              // callback function fires after the 'destroy' method is called on the menu container   
  20. };  

以上參數列表及說明來自superfish官方網站:http://users.tpg.com.au/j_birch/plugins/superfish/options/

當用於獨立項目的時候,就需要考慮爲當前頁面的菜單項目添加高亮效果

需要添加的javascript代碼:

  1. var path = window.location.pathname.split('/');   
  2. path = path[path.length-1];   
  3. if (path !== undefined) {   
  4.   $(".sf-menu")   
  5.     .find("a[href$='" + path + "']"// gets all links that match the href   
  6.     .parents('li')  // gets all list items that are ancestors of the link   
  7.    // .children('a')  // walks down one level from all selected li's   
  8.     .addClass('current');   
  9. }  

 

上面的javascript代碼是將預定義好的高亮效果(上例中的紅色字體,帶下劃線)添加給li,如果想添加給a的話,去掉上面代碼中第七行最前面的註釋符號即可。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章