動端側(cè)邊滑出導(dǎo)航欄是一種常見的UI設(shè)計,可以提升用戶體驗和導(dǎo)航的可用性。本文將詳細(xì)介紹如何利用前端技術(shù)實現(xiàn)移動端側(cè)邊滑出導(dǎo)航欄,并給出相關(guān)的代碼示例。
首先,我們需要一個觸發(fā)導(dǎo)航欄滑出的按鈕。通常情況下,這個按鈕會放在頁面的頂部或者底部,以便用戶方便點(diǎn)擊。我們可以使用HTML和CSS來創(chuàng)建這個按鈕。
HTML代碼如下所示:
```html菜單```
CSS代碼如下所示:
```css.nav-button { position: fixed; top: 20px; left: 20px; width: 60px; height: 60px; background-color: #000; color: #fff; border: 0; border-radius: 50%; font-size: 16px;}```
以上代碼創(chuàng)建了一個圓形的按鈕,并設(shè)置了一些基本樣式,可以根據(jù)實際需求進(jìn)行調(diào)整。
接下來,我們需要實現(xiàn)導(dǎo)航欄滑出的效果。可以使用CSS來實現(xiàn),具體代碼如下:
HTML代碼如下所示:
```html```
CSS代碼如下所示:
```css.nav-menu { position: fixed; top: 0; left: -80%; width: 80%; height: ; background-color: #fff; transition: all 0.3s ease;}
.nav-menu.open { left: 0;}
.nav-menu ul { list-style: none; padding: 0; margin: 0;}
.nav-menu ul li { padding: 10px 20px; border-bottom: 1px solid #ccc; cursor: pointer;}
.nav-menu ul li:last-child { border-bottom: none;}```
以上代碼創(chuàng)建了一個導(dǎo)航欄,并設(shè)置了一些基本樣式。使用左側(cè)負(fù)值的left屬性隱藏了導(dǎo)航欄,當(dāng)給導(dǎo)航欄添加open類名后,left屬性變?yōu)?,導(dǎo)航欄就可以滑出。
接下來,我們需要使用JavaScript來處理按鈕的點(diǎn)擊事件,實現(xiàn)導(dǎo)航欄的滑出和收起。可以使用以下代碼:
```javascriptconst navButton=document.querySelector('.nav-button');const navMenu=document.querySelector('.nav-menu');
navButton.addEventListener('click', ()=> { navMenu.classList.toggle('open');});```
以上代碼添加了一個點(diǎn)擊事件監(jiān)聽器,當(dāng)按鈕被點(diǎn)擊時,toggle方法會切換導(dǎo)航欄元素的open類,從而實現(xiàn)導(dǎo)航欄的滑出和收起效果。
至此,我們已經(jīng)完成了移動端側(cè)邊滑出導(dǎo)航欄的制作。當(dāng)用戶點(diǎn)擊按鈕時,導(dǎo)航欄將從左側(cè)滑出,再次點(diǎn)擊按鈕時,導(dǎo)航欄將收起。這種交互方式可以為用戶提供良好的導(dǎo)航體驗。
總結(jié)一下,要實現(xiàn)移動端側(cè)邊滑出導(dǎo)航欄,我們需要使用HTML、CSS和JavaScript。通過添加一個按鈕和一個導(dǎo)航欄元素,利用CSS的transition屬性和JavaScript的事件監(jiān)聽器,可以輕松實現(xiàn)這一效果。希望本文的內(nèi)容對你有所幫助。
一個網(wǎng)站都有自己的導(dǎo)航菜單,如:頭部導(dǎo)航菜單,底部導(dǎo)航菜單,側(cè)邊欄導(dǎo)航菜單,wordpress網(wǎng)站也不例外。那么,在wordpress網(wǎng)站主題模板開發(fā)中,我們怎樣給wordpress網(wǎng)站添加前臺的導(dǎo)航菜單呢?嗯,據(jù)我多年的開發(fā)經(jīng)驗發(fā)現(xiàn),wordpress為wordpress主題開發(fā),主要提供了三種導(dǎo)航菜單的創(chuàng)建方式,這三種方式會創(chuàng)建不一樣的導(dǎo)航功能。今天,我們就來看看第一種wordpress網(wǎng)站創(chuàng)建導(dǎo)航菜單的方式——基于page頁面的導(dǎo)航菜單。這里,我們會用到wordpress提供的函數(shù)——wp_list_pages(),這是一個wordpress頁面列表的函數(shù)。
我們先來看一下這個wordpress函數(shù)——wp_list_pages(),看看它的結(jié)構(gòu)。
wp_list_pages($defaults);
從上面的代碼中,我們可以看到,wp_list_pages()函數(shù)只有一個參數(shù),這個參數(shù)有兩種類型,可以是字符串類型,也可以是數(shù)組類型。這個我們在下面的實例中會做相應(yīng)的介紹。為了方便了解這個參數(shù)的值,我們這里以數(shù)組的形式來解說一下這個參數(shù)。
參數(shù)介紹:
$defaults=array('depth'=>0, //0:顯示所有頁面和子頁面,按層級顯示;//1:只顯示頂級頁面;//2:顯示2級頁面;//-1:顯示所有頁面和子頁面,不按層級顯示;
'show_date'=>'', //是否顯示創(chuàng)建日期
'date_format'=> get_option('date_format'),//日期格式
'child_of'=>0, //指定父頁面ID號,顯示這個父頁面下的子頁面;0表示顯示所有子頁面;
'exclude'=>'', //排除哪些頁面
'include'=>'', //包含哪些頁面
'title_li'=>'Pages', //是否顯示頁面列表的標(biāo)題,如果不顯示,設(shè)為空;這里設(shè)置標(biāo)題為“Pages”
'echo'=>1, //是否打印到前臺頁面顯示出來。1表示顯示,0表示不顯示,而是只獲取值。
'authors'=>'', //指定特定作者創(chuàng)建的頁面
'link_before'=> '', //鏈接<a>前的內(nèi)容'link_after'=>'', //鏈接<a>后的內(nèi)容
'exclude_tree'=>'', //排除父級/子級樹
'sort_column'=>'menu_order', //排序方式,menu_order按后臺設(shè)置;post_date按發(fā)布時間,post_modified按修改時間;
'sort_order'=> 'DESC', //排序順序,ASC順序,DESC是倒序);
可以看到,這個wp_list_pages()函數(shù)的參數(shù)值有很多,在我們wordpress主題模板開發(fā)的實際操作中,一般只會使用其中的幾個。
下面,我們通過案例來介紹wp_list_pages()函數(shù)是如何生成基于page頁面的導(dǎo)航菜單的。我們先來看一下,wordpress網(wǎng)站后臺都創(chuàng)建了哪些page單頁面,如下圖:
從上圖中,我們可以看到,這個wordpress網(wǎng)站后臺有6個頁面,其中,“投稿”是“子頁面1”和“子頁面2”的父級頁面。
案例1:我們在wordpress網(wǎng)站模板的頭部添加如下代碼:
$menu=array( 'depth'=>0, 'title_li'=>'頁面導(dǎo)航菜單', 'echo'=>1, );wp_list_pages($menu);
我們再到wordpress網(wǎng)站的前臺頁面看一下效果,如下圖:
我們可以看到,頁面導(dǎo)航展示了出來,子頁面按層級展示——縮進(jìn)2格。
案例2:我們來修改一個參數(shù)代碼,標(biāo)題設(shè)置為空,添加一個排序參數(shù),并修改一下層級參數(shù)值,代碼如下:
$menu=array( 'depth'=>1, 'title_li'=>'頁面導(dǎo)航菜單', 'echo'=>1, 'sort_order'=> 'DESC','sort_column'=>'menu_order',);wp_list_pages($menu);
這時,我們再來看看wordpress網(wǎng)站前臺頁面的效果,如下圖:
?我們可以看到,導(dǎo)航菜單的標(biāo)題不見了,而且層級沒有了,排序也發(fā)生了變化,按頁面名稱的倒序來進(jìn)行排列。wp_list_pages()的參數(shù)很多,這里不做一一演示,都很簡單。
案例3:wp_list_pages()函數(shù)的參數(shù)用字符串類型。
我人在開頭說過,wp_list_pages()函數(shù)的參數(shù)有2種類型,可以是字符串類型,也可以是數(shù)組類型。數(shù)組類型我們在前2個案例中已經(jīng)使用過了。這里,我們再來以字符串類型來做一次介紹。
這里我們拿案例的代碼來演示,把數(shù)組類型的參數(shù)換成字符串的類型,代碼如下:
wp_list_pages("depth=1&title=&echo=1&sort_order=DESC&sort_column=menu_order");
上面的代碼中,我們用到了一個連接符&這個特殊符號,它是用來連接多個參數(shù)。中間的=這個符號,就不用解釋了,是等于號。通過這句代碼,我們同樣達(dá)到案例2的效果。
如果想讓這個基于page頁面的導(dǎo)航菜單能在頂部橫排顯示,可以修改wordpress網(wǎng)站模板的CSS文件的代碼,修改它的樣式,就可以了。這里就不多說了。
這節(jié)課就介紹到這里,以上就是我的觀點(diǎn),如有不同觀點(diǎn),歡迎發(fā)表評論。同時,歡迎【點(diǎn)贊、分享、收藏】和【關(guān)注】我。
篇文章,小海老師帶領(lǐng)大家一同做一個利用CSS技術(shù)實現(xiàn)的導(dǎo)航欄。通過這個導(dǎo)航欄的制作,希望大家能夠?qū)η皫灼恼轮袑W(xué)習(xí)到的CSS屬性能有一個整體的認(rèn)識,并能夠達(dá)到靈活運(yùn)用的程度。
承接文章:靈活控制塊級元素在一行內(nèi)顯示,CSS浮動屬性,知道原理就很簡單
技術(shù)等級:初級 | 適合前端開發(fā)的初學(xué)者閱讀學(xué)習(xí)。
希望收藏了這篇文章的你同時也可以關(guān)注一下“小海前端”的頭條號,因為這些文章都是連載的,并且是經(jīng)過系統(tǒng)的歸納和總結(jié)的。塌下心來認(rèn)真閱讀,你一定會學(xué)到對你有用的知識。
如果你是初學(xué)前端開發(fā),強(qiáng)烈建議跟著文章中講的步驟自己做一做。步驟不多,思路簡單,占用不了大家太多的時間,自己做一遍,一定會收獲不少。
一、導(dǎo)航欄效果圖展示:
今天我們要做的導(dǎo)航欄效果如下圖所示。
導(dǎo)航欄效果圖展示
這個效果主要使用的是<ul></ul>標(biāo)記對和<a></a>標(biāo)記對共同實現(xiàn)的。
整個實例涉及到的CSS屬性如下所示:
width
height
background-color
list-style-type
display
float
margin
line-height
二、實現(xiàn)頁面效果:
首先為導(dǎo)航欄設(shè)置一個<div>容器,并設(shè)置其id屬性的取值設(shè)置為nav。該容器用來控制導(dǎo)航欄的通欄位置。通欄的容器寬度應(yīng)該設(shè)置為100%,這里高度設(shè)置為40px,顏色為#a72f2e。實現(xiàn)代碼如下所示:
<div id=”nav”></div>
#nav{
width:100%; height:40px;
background-color:#a72f2e;
}
由于要在通欄的容器中顯示固定寬度為1000px的導(dǎo)航欄主體,因此在該容器內(nèi)部再制作一個<div>容器,用來盛放真正的導(dǎo)航欄代碼。我們將它的class屬性取值為navContent。這個容器的寬度設(shè)置為1000px,高度與#nav的高度等高,并且在#nav容器內(nèi)部水平居中。實現(xiàn)代碼如下所示:
<div class=”navContent”></div>
#nav .navContent{
width:1000px; height:40px;
margin:0 auto;
}
接下來在.navContent容器內(nèi)部書寫導(dǎo)航欄的各個條目。導(dǎo)航欄是使用<ul></ul>標(biāo)記對實現(xiàn)的,而它的導(dǎo)航欄條目是利用<li></li>標(biāo)記對書寫的。因為導(dǎo)航欄需要單擊后跳轉(zhuǎn)頁面,所以在<li></li>內(nèi)部使用了<a></a>標(biāo)記對。
這里要說明一點(diǎn),因為<li></li>標(biāo)記對是塊級元素,<a></a>標(biāo)記對是內(nèi)聯(lián)元素,因此要讓<li></li>標(biāo)記對包裹<a></a>標(biāo)記對,不要用<a></a>標(biāo)記對包裹<li></li>標(biāo)記對。
這里以導(dǎo)航欄條目“首頁”和“網(wǎng)站介紹”為例,下列HTML代碼展示了導(dǎo)航欄的條目內(nèi)容。
<ul>
<li><a href="index.html">首頁</a></li>
<li><a href="#">網(wǎng)站簡介</a></li>
…
</ul>
需要更多的導(dǎo)航欄條目,可以在<ul>標(biāo)記對內(nèi)部重復(fù)書寫<li></li>和<a></a>的代碼格式。
三、編寫整個導(dǎo)航欄的CSS樣式:
整個導(dǎo)航欄是使用<ul></ul>標(biāo)記對實現(xiàn)的,所以需要對<ul></ul>標(biāo)記對編寫CSS樣式。
由于無序列表的列表項左側(cè)帶有小圓點(diǎn)的項目符號,因此需要將該項目符號去掉。所以<ul></ul>標(biāo)記對的CSS代碼如下所示:
#nav .navContent ul{
list-style-type:none;
}
四、編寫導(dǎo)航欄條目的CSS樣式:
導(dǎo)航欄條目是使用<li></li>標(biāo)記對實現(xiàn)的,所以需要對<li></li>標(biāo)記對編寫CSS樣式。
由于<li></li>標(biāo)記對是塊級元素,因此即使去掉了左側(cè)的項目符號,所有的條目依然都各自獨(dú)占一行顯示,所以需要讓它們在一行內(nèi)顯示,這就需要讓所有的<li></li>標(biāo)記對左浮動。CSS代碼如下所示:
#nav .navContent ul li{
float:left;
}
五、編寫導(dǎo)航欄條目中鏈接的CSS樣式:
導(dǎo)航欄條目中的鏈接是使用<a></a>標(biāo)記對實現(xiàn)的,所以需要對<a></a>標(biāo)記對編寫CSS樣式。
由于<a></a>標(biāo)記對是內(nèi)聯(lián)元素,因此無法設(shè)置寬度和高度,也就無法為每一個導(dǎo)航欄條目設(shè)置尺寸。因此需要將<a></a>標(biāo)記對轉(zhuǎn)換為塊級元素(display屬性),然后設(shè)置寬度和高度(width屬性和height屬性)。
有了寬度和高度,就需要讓鏈接的文本在容器中水平居中(text-align屬性)和垂直居中(line-height屬性)了。
最后去掉鏈接的下劃線(text-decoration屬性),并設(shè)置鏈接的文本顏色(color屬性)。
導(dǎo)航欄條目中鏈接的CSS代碼如下所示:
#nav .navContent ul li a{
display:block;
width:100px; height:40px;
text-align:center;
line-height:40px;
text-decoration:none;
color:#dddddd;
}
六、編寫鼠標(biāo)經(jīng)過導(dǎo)航欄條目時的CSS樣式:
鼠標(biāo)經(jīng)過導(dǎo)航欄目時,即使沒有觸碰到鏈接的文本部分,也應(yīng)該能夠進(jìn)行跳轉(zhuǎn)。因此需要對<a></a>標(biāo)記對編寫鼠標(biāo)經(jīng)過時的CSS樣式。
鼠標(biāo)經(jīng)過時,希望背景顏色(background-color屬性)和文本顏色(color屬性)發(fā)生變化。
鼠標(biāo)經(jīng)過鏈接時的CSS代碼如下所示:
#nav .navContent ul li a:hover{
background-color:#ff5857;
color:#ffffff;
}
七、整體代碼:
至此,這個簡單的導(dǎo)航欄效果就完全實現(xiàn)了,CSS整體使用了約30行代碼。實現(xiàn)這個導(dǎo)航欄效果的HTML代碼如下圖所示。
HTML整體代碼
實現(xiàn)這個導(dǎo)航欄效果的CSS代碼如下圖所示。
CSS整體代碼
如果大家希望得到更加全面的關(guān)于HTML和CSS技術(shù)講解的內(nèi)容,可以私信我,我會免費(fèi)將小海老師自己編寫的HTML和CSS的PDF教材發(fā)給你,幫助你在前端開發(fā)的道路上闊步前行。
在頭條上發(fā)表的這些文章都是從前端開發(fā)的基礎(chǔ)開始一步一步講起的。我非常希望能有更多的前端開發(fā)初學(xué)者通過我寫的文章,逐步學(xué)到一定的知識,甚至慢慢有了入門的感覺。這些文章都是我這幾年教學(xué)過程中的經(jīng)驗,每寫一篇時我都盡量把握好措辭,用簡單易懂的語言描述,同時精心設(shè)計版面,讓版面更加豐富,激發(fā)閱讀興趣。所以,每一篇文章可能篇幅不長,但是都要耗費(fèi)小海老師很久的時間。
希望收藏了這篇文章的你同時也可以關(guān)注一下“小海前端”的頭條號,因為這些文章都是連載的,并且是經(jīng)過系統(tǒng)的歸納和總結(jié)的。塌下心來認(rèn)真閱讀,你一定會學(xué)到對你有用的知識。
關(guān)注“小海前端”,我會繼續(xù)為大家奉上更加深入的前端開發(fā)文章,也希望更多的初學(xué)者跟著學(xué)下去,我們共同將前端開發(fā)的路努力堅持的走下去。
下一次,小海老師開始為大家講解CSS的盒屬性。盒屬性是div布局的基礎(chǔ),在實際的布局過程中有許多應(yīng)用技巧。下一篇文章我會為大家將盒屬性一個一個進(jìn)行詳細(xì)的分析。
*請認(rèn)真填寫需求信息,我們會在24小時內(nèi)與您取得聯(lián)系。