日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > web前端 > htmlcss > 全兼容可高亮二級緩沖折疊菜單[附DEMO演示]

全兼容可高亮二級緩沖折疊菜單[附DEMO演示]

來源:程序員人生   發布時間:2014-04-05 17:58:16 閱讀次數:3662次

最近一段時間一直比較忙,已經有好幾個月沒有打理博客了。現將一個最近在項目中制作的一個菜單實例整理出來,共享一下。

在后臺或OA系統中最常用到的布局往往是一個全屏布局,一般都是上中下三行兩列布局,頁頭、頁腳、左側菜單加一個右側ifame框架頁。所以那種帶折疊的二級菜單是會經常使用到的,本例便是實現這樣一種比較通用的全兼容可高亮二級緩沖折疊菜單。

特點

  1. 全兼容,瀏覽器測試:IE5.5、IE6、IE7、IE8、FF3.0、谷歌、Safari 4.0、Opera9.0。
  2. Html結構優雅簡潔,無多余標簽,利于程序循環輸出。
  3. 樣式與結構分離,你可以在樣式表中修改不同的風格。
  4. 當前選中項高亮狀態,一級菜單和二級菜單都可以高亮顯示。
  5. 折疊層優雅緩沖動畫。
  6. 最適用于后臺和一些OA系統界面。

缺點

  1. 不支持防刷新,這個功能在后臺應用系統中應該用途不大,沒有加入這個功能。
  2. 在IE6中緩沖效果沒有出來,對于IE6,就弱化一下效果。

還是先看看效果截圖:

圖一

簡單說一下制作這樣的菜單的一些簡單的思路和會遇到的問題。

一般制作一個效果,我的制作流程一般是先畫出HTML結構層內容,再寫樣式,之后是搞一些錦上添花的效果,如JS特效等等。不知各位大牛們是怎樣一個流程模式。

結構層

結構層的構思一般是建立在一個感性認識上的,一般是有一個效果圖,根據這個效果圖構建最簡潔的HTML結構。如上圖所示,映入眼簾的第一印象,首先是想到用一個UL的無序列表,但是…這是一個二級嵌套的列表,這是我們首先需要考慮的問題。

因此結構應該是下面這樣子:

<li><a href="#none">一級菜單項</a>
 <ul>
  <li><a href="#none">二級菜單項</a></li>         
 </ul>
</li>

在有二級菜單時是一個嵌套的UL結構,無二級菜單時則是如下:

<ul class="menu">
 <li><a href="#none">一級菜單項</a></li>
</ul>

當然,你也可以采用dl-dt-dd有序列表的方式來創建這種嵌套的結構,視你的實際情況而定。

有了最原始的結構層,你就需要添加一些必要的鉤子,用于CSS和JS控制樣式和效果,我一直反對那種添加很多類名的寫法,這會增加頁面的體積,所以最精簡的作法是應用一兩個必要的類名給父容器即可,然后在樣式表中用子(群)選擇符設置各種個性的設置。在上面的結構,你會想到用幾個類名來定義所有的樣式呢?

我的做法是只用三個類名即可以控制全部的樣式顯示了。一個是最頂級UL,定義為class=”menu”,一個是二級菜單的容器,也就是嵌套的UL定義一個class=”level2”,最后是一級菜單項li定義一個class=”level1”,有了這三個鉤子,你就可以操縱整個結構的樣式了。

表現層

樣式表的設置都很簡單,唯一要注意的是,為了便于JS控制二級菜單的顯隱和記錄當前選中項的高亮狀態,所以我不用hover偽類來實現鼠標的滑入滑出效果,而采用JS來模擬它。用JS控制樣式的關鍵代碼如下:

一級菜單樣式

 /*一級菜單三態樣式,供JS調用*/
 .menu li.level1 a{display:block;line-height:31px;height:31px;padding-left:50px; font-size:12px;color:#fff;background:url(../images/menubg.gif) no-repeat left top;}
 .menu li.level1 a.hove{background-position:left -31px;}
 .menu li.level1 a.cur{background-position:left -62px;}

 二級菜單樣式

 /*二級菜單三態樣式,供JS調用*/
 .menu li.level1 a{display:block;line-height:31px;height:31px;padding-left:50px; font-size:12px;color:#fff;background:url(../images/menubg.gif) no-repeat left top;}
 .menu li.level1 a.hove{background-position:left -31px;}
 .menu li.level1 a.cur{background-position:left -62px;}

行為層

因為前面已經提到,我們在樣式表并沒有定義菜單的三態效果,所以我們需要給每個菜單項綁定onmouseover、onmouseout和onclick事件模擬出這種效果來。在結構層中我們并沒有定義這個總容器的ID,而只定義了一個class類名,所以在JS添加了一個擴展的getElementsByClassName()方法(感謝好友司徒正美),根據類名來獲得這個對象。用循環閉包來綁定這三個事件。

詳細代碼就不一一解說了,Demo中注釋得非常清楚,請下載到本機瀏覽。

有什么問題請在本博客中跟貼討論,祝你用得開心!

Demo演示:全兼容可高亮二級緩沖折疊菜單

原文:http://www.cnblogs.com/binyong/archive/2010/05/28/1745918.html

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 亚洲一区二区三区免费在线观看 | 91精品国产综合久久久久久 | 欧美成人一区二区三区片免费 | 欧美国产一区二区 | 国产精品久久中文字幕 | 美女视频黄是免费 | 成人久久久精品国产乱码一区二区 | 午夜免费| 亚洲精品在线免费 | av入口| 精品国产1区 | 欧美日韩成人在线观看 | 91视频免费看 | 亚洲视频在线观看网站 | 午夜精品一区二区三区在线播放 | 一二三区在线 | 片毛片| 精品久久91| 精品九九久久 | 污黄网站在线观看 | 国产精品精品视频一区二区三区 | 黄色一级在线 | 九九99久久| 国产伦精品一区二区三 | 国产精品国产亚洲精品看不卡15 | 中文字幕在线视频免费观看 | 精品欧美一区二区三区久久久 | 日韩精品一区二区三区四区 | 国产区精品在线观看 | 国产黄色精品 | 亚洲国产精品久久久久 | 在线一区二区三区四区 | 日韩黄色在线观看 | 93精品国产乱码久久久 | 草久久久| 91精品国产综合久久福利 | 亚洲夜夜夜 | 色婷婷亚洲综合 | 国产不卡视频一区二区三区 | 亚洲国产精品一区二区久久,亚洲午夜 | 一区二区三区四区国产 |