vue實現(xiàn)nav導航欄的方法
每一個網(wǎng)頁項目都少不了導航欄,通過原始的方法基本上都是可以寫出來的。但是要寫出代碼量少,冗余度低的代碼就要動腦子思考一下了。
最近寫了一個百度地圖的項目,要求底部有一個導航欄。具體如下圖:

首先,拿到了底部導航欄的所有圖標圖片,圖片都有兩種?;疑拇砦催x中,選中的用帶樣色的圖片替換。
先看一下,組件中 html結構:通過vue提供的v-for方法,進行遍歷顯示footNav這個數(shù)組。數(shù)組里邊存放著{title:"銀行",url:" ",url1:" "},將圖片的 src與isSelect進行綁定,并進行判斷,如果等于當前的title時即為選中當前的導航,顯示選中時的圖片url1。
<div class="footer">
<ul>
<li v-for="item in footNav" @click="selectMapNav(item.title)">
<img :src="isSelect === item.title ? item.url1 : item.url" alt="">
<p>{{item.title}}</p>
</li>
</ul>
</div>
樣式用的是擴展語言less寫的,應該都能看懂,只是簡單的嵌套了一下。給這個地步加一個寬為100%,固定的高度。因為要固定在底部顯示,所以加了一個固定定位和背景顏色。寫的是手機端項目,瀏覽器都比較新,所以不用考慮兼容問題。大膽的flex布局可以很方便的實現(xiàn)導航欄。
.footer ul{
width:100%;
height:50px;
position:fixed;
bottom:0;
z-index:1;
background-color:#fff;
display:flex;
li{
text-align:center;
flex:1;
img{height:23px;width:23px;margin-top:5px;}
p{font-size:0.1rem;height:15px;line-height:10px;}
}
}
在vue data () 中定義一個數(shù)組,里邊存放每一個導航的標題,如‘銀行',未選中時顯示的圖片url,選中時的圖片url1。isSelect表示當前選中的,默認選中銀行。
isSelect: '銀行',
footNav: [{title: '銀行', url: '../../../static/baiduMap/23@2x.png', url1: '../../../static/baiduMap/22@2x.png'},
{title: '公交 ', url: '../../../static/baiduMap/11@2x.png', url1: '../../../static/baiduMap/10@2x.png'},
{title: '地鐵 ', url: '../../../static/baiduMap/13@2x.png', url1: '../../../static/baiduMap/12@2x.png'},
{title: '教育 ', url: '../../../static/baiduMap/15@2x.png', url1: '../../../static/baiduMap/14@2x.png'},
{title: '醫(yī)院 ', url: '../../../static/baiduMap/17@2x.png', url1: '../../../static/baiduMap/16@2x.png'},
{title: '休閑 ', url: '../../../static/baiduMap/19@2x.png', url1: '../../../static/baiduMap/18@2x.png'},
{title: '購物 ', url: '../../../static/baiduMap/21@2x.png', url1: '../../../static/baiduMap/20@2x.png'}
]
在methods方法中,寫上html中調用的事件。通過html結構層那里的點擊事件selectMapNav(item.title)傳過來的title賦值給isSelect即可實現(xiàn)導航欄的點擊狀態(tài)的變化。
selectMapNav (title) {
this.isSelect = title }
來看一下最終的結果,很完美。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Vue 實現(xiàn)創(chuàng)建全局組件,并且使用Vue.use() 載入方式
這篇文章主要介紹了Vue 實現(xiàn)創(chuàng)建全局組件,并且使用Vue.use() 載入方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-08-08
Vue+FormData+axios實現(xiàn)圖片上傳功能
這篇文章主要為大家學習介紹了Vue如何利用FormData和axios實現(xiàn)圖片上傳功能,本文為大家整理了詳細步驟,感興趣的小伙伴可以了解一下2023-08-08
vue3(optionApi)使用Element Plus庫沒有效果的解決方式
這篇文章主要介紹了vue3(optionApi)使用Element Plus庫沒有效果的解決方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-03-03

