|
|
|
|
|
前面介紹過一款layui框架實現(xiàn)的可折疊側(cè)欄導(dǎo)航菜單,本文介紹的側(cè)欄導(dǎo)航可以說是前面介紹的升級,因為它多了一些特色,比如增加了圖標字體,畫面觀感更好了,此外,最主要的是它還可以縮進滑出。
效果圖
示例介紹
本示例由CSS3+jQuery實現(xiàn),另外用到了圖標字體iconfont。
HTML代碼
下面是示例的HTML代碼結(jié)構(gòu)。
<div class="nav">
<div class="nav-top">
<div id="mini" style="border-bottom:1px solid rgba(255,255,255,.1)"><img src="statics/images/mini.png"></div>
</div>
<ul>
<li class="nav-item"> <a href="javascript:;"><i class="my-icon nav-icon icon_1"></i><span>網(wǎng)站配置</span><i class="my-icon nav-more"></i></a>
<ul>
<li><a href="javascript:;"><span>網(wǎng)站設(shè)置</span></a></li>
<li><a href="javascript:;"><span>友情鏈接</span></a></li>
<li><a href="javascript:;"><span>分類管理</span></a></li>
<li><a href="javascript:;"><span>系統(tǒng)日志</span></a></li>
</ul>
</li>
<li class="nav-item"> <a href="javascript:;"><i class="my-icon nav-icon icon_2"></i><span>文章管理</span><i class="my-icon nav-more"></i></a>
<ul>
<li><a href="javascript:;"><span>站內(nèi)新聞</span></a></li>
<li><a href="javascript:;"><span>站內(nèi)公告</span></a></li>
<li><a href="javascript:;"><span>登錄日志</span></a></li>
</ul>
</li>
<li class="nav-item"> <a href="javascript:;"><i class="my-icon nav-icon icon_3"></i><span>訂單管理</span><i class="my-icon nav-more"></i></a>
<ul>
<li><a href="javascript:;"><span>訂單列表</span></a></li>
<li><a href="javascript:;"><span>打個醬油</span></a></li>
<li><a href="javascript:;"><span>也打醬油</span></a></li>
</ul>
</li>
</ul>
</div>
div
標簽是導(dǎo)航的盒子,div
里面第一層ul
標簽是導(dǎo)航菜單的容器,其子元素li
標簽是主菜單項目列舉。
每個主菜單項目的li
標簽,里面都可以嵌入一個ul
標簽,這是一個二級菜單的容器,而這個ul
標簽里的li
元素,就是二級菜單列舉項。
CSS
本示例導(dǎo)航的CSS樣式代碼不多,下面分析下主要的樣式。
.nav
設(shè)置導(dǎo)航盒子的寬度、高度、背景等樣式。
.nav {
width: 220px;
height: 100%;
background: #263238;
transition: all .3s;
}
這里用了一個transition
屬性,其值是 all .3s; 。transition
屬性用于在特定時間段內(nèi)改變 CSS 屬性的值,例如寬度、高度、不透明度和變換。參閱 css transition 屬性。
.nav-item
設(shè)置導(dǎo)航主菜單項的位置等樣式。
.nav-item {
position: relative;
}
li {
list-style: none;
}
菜單名稱前面的i
標簽,是一個圖標字體的標簽,其屬性值為 my-icon nav-icon icon_1 。
.icon_1::after
是圖標字體的偽元素。
.nav-icon
設(shè)置位置等樣式。
.my-icon
設(shè)置字體樣式。
.icon_1::after {
content: "\e62b";
}
.nav .nav-icon {
font-size: 20px;
position: absolute;
margin-left: -1px;
}
.my-icon {
font-family: "my-icon" !important;
font-size: 16px;
font-style: normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
本示例CSS代碼比較簡單易懂,不過需要引用iconfont圖標字體。
<link rel="stylesheet" type="text/css" href="statics/font/iconfont.css">
iconfont圖標字體有一些關(guān)聯(lián)文件。
請放心,這些文件都在源碼包里,示例引用的文件都是本地的而不是使用公共庫文件。
你可能需要在你的web服務(wù)器進行相關(guān)配置,以支持該圖標字體??蓞㈤單覍懙膸灼恼隆?/p>
JavaScript
本示例需要使用jQuery編程,以實現(xiàn)鼠標點擊事件的交互功能。
$(function(){
// nav收縮展開
$('.nav-item>a').on('click',function(){
if (!$('.nav').hasClass('nav-mini')) {
if ($(this).next().css('display') == "none") {
//展開未展開
$('.nav-item').children('ul').slideUp(300);
$(this).next('ul').slideDown(300);
$(this).parent('li').addClass('nav-show').siblings('li').removeClass('nav-show');
}else{
//收縮已展開
$(this).next('ul').slideUp(300);
$('.nav-item.nav-show').removeClass('nav-show');
}
}
});
//nav-mini切換
$('#mini').on('click',function(){
if (!$('.nav').hasClass('nav-mini')) {
$('.nav-item.nav-show').removeClass('nav-show');
$('.nav-item').children('ul').removeAttr('style');
$('.nav').addClass('nav-mini');
}else{
$('.nav').removeClass('nav-mini');
}
});
});
總結(jié)
本文介紹了jQuery黑色左側(cè)邊導(dǎo)航菜單,該導(dǎo)航菜單可折疊可縮進滑出,并使用了圖標字體,做得非常好看,風(fēng)格大氣又沉穩(wěn),適合各種類型的網(wǎng)站使用。喜歡的朋友可以收藏本頁,也可以直接下載源碼備用。
相關(guān)文章