當柳上原的風吹向天際的時候...

          真正的快樂來源于創造

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            368 Posts :: 1 Stories :: 201 Comments :: 0 Trackbacks
          在ProjectManager中,由于用戶需要進行的操作較多,于是采用了主菜單和次級菜單的形式來擴大菜單容量。但新問題是用戶不容易記住當前所處的位置,對于新手尤其是這樣,因此,在主菜單和次級菜單上把當前位置標出是對用戶有所幫助的,具體形式如下圖所示:

          具體怎么做到這一點呢?使用JS分別把主菜單和次級菜單的當前項更換一個類別就可以,首先我們看看兩個菜單css定義:
          #menubar{
              width
          : 950px;
              height
          : 30px;
              margin-left
          :auto;
              margin-right
          :auto;
          }
          #menubar ul
          {
              margin
          :0px;
              padding
          :0px;
              list-style-type
          :none;
          }
          #menubar li
          {
              float
          :left;
              display
          :block;    
              height
          :30px;
              line-height
          :30px;
          }
          #menubar li.leftBlank
          {
              width
          :235px;
              text-align
          :left; 
              font-size
          :20px;         
              color
          :#000000;      
          }
          #menubar li.rightBlank
          {
              width
          :235px;
              text-align
          :right;   
            
          }
          #menubar li a
          {
              width
          :96px;
              
              
              font-size
          :16px;         
              color
          :#404040;
              text-decoration
          :none;
              text-align
          :center;        
              background
          :#ffffff url(../img/manubar.gif) 0px 0px;
          }

          #menubar li a.current
          {
              width
          :96px;
              color
          :#ffffff;
              font-weight
          :bold;
              background
          :#ffffff url(../img/manubar.gif) 0px -49px;
              border
          :0px;
          }


          #submenubar
          {
              width
          : 950px;
              height
          : 31px;
              margin-left
          :auto;
              margin-right
          :auto;
              background
          :#000000 url(../img/submanubar.gif) 0px -1px repeat-x;
              border-left
          :1px #ff7101 solid;
              border-right
          :1px #ff7101 solid;
          }

          #submenubar ul
          {
              margin
          :0px;
              padding
          :0px;
              list-style-type
          :none;
          }
          #submenubar li
          {
              float
          :left;
              height
          :31px;
              line-height
          :31px;
          }
          #submenubar li a
          {    
              padding-left
          :20px;
              font-size
          :12px;         
              color
          :#ffffff;
              text-decoration
          :none;
              text-align
          :center;        
          }

          #submenubar li a.current
          {       
              color
          :#c20002;
              font-weight
          :bold;          
          }


          #submenubar li a:hover
          {
              text-decoration
          :underline;
          }

          上面加粗的部分,就是我們要用JS賦給當前菜單項的,這就比較簡單了,找出來修改className即可,代碼如下:
          /*****************************************************
          * 設置頂級菜單中當前頁所處的位置
          ****************************************************
          */
          function setCurrentMenu(menuNumber){
              
          // 設置主菜單
              var manubar=$("menubar");
              
          var menu=manubar.childNodes[2].childNodes[menuNumber].firstChild;
              menu.className
          ="current";
          }

          /*****************************************************
          * 設置次級菜單中當前頁所處的位置
          ****************************************************
          */
          function setCurrentSubMenu(menuNumber){
              
          // 設置次級菜單
              var manubar=$("submenubar");
              
          var menu=manubar.childNodes[2].childNodes[menuNumber].firstChild;
              menu.className
          ="current";
          }

          其后,在頁面的窗體載入事件中調用這兩個函數即可,指定menuNumber即可指定當前菜單項。userMenuIntroBody.jsp中示例調用如下:
          <script language="javascript">
          <!--

          /*****************************************************
          * 窗口載入時調用的啟動函數
          ****************************************************
          */
          window.onload
          =function(){
              
          // 設置當前頁在主菜單和次級菜單中的位置
              setCurrentMenu(1);
              setCurrentSubMenu(
          5);
              
              
          // 隱藏邊欄,加寬內容欄,使得內容如同全屏一樣
              makeConceptFullScreen();
          }
          //-->
          </script>
          這樣,就做到了是第一個主菜單,第五個次級菜單變成當前項,分別用黃色條紋圖片背景和紅色加粗字體標識出來。

          有兩點需要贅述一下,一是主菜單的第一項是第二個li節點,第一個是左空白,而次級菜單的第一項是第一個li節點;二是原始的菜單項都是沒有指定current類別的,都是在具體頁面中用JS指定。具體大家多看看代碼。

          --全文完--

          posted on 2009-09-10 10:57 何楊 閱讀(186) 評論(0)  編輯  收藏
          主站蜘蛛池模板: 青海省| 石渠县| 内乡县| 隆回县| 乌拉特中旗| 丹寨县| 常州市| 台南市| 鹿邑县| 漾濞| SHOW| 海安县| 兰溪市| 错那县| 文山县| 惠水县| 陕西省| 南宫市| 武强县| 马公市| 封丘县| 邵武市| 冀州市| 彰化县| 南岸区| 石台县| 扎囊县| 射阳县| 绥阳县| 沙河市| 永城市| 吉木萨尔县| 鄂州市| 太原市| 嘉兴市| 舞钢市| 南宁市| 白银市| 介休市| 鸡泽县| 廊坊市|