vue实现nav导航栏的方法


Posted in Javascript onDecember 13, 2017

每一个网页项目都少不了导航栏,通过原始的方法基本上都是可以写出来的。但是要写出代码量少,冗余度低的代码就要动脑子思考一下了。

最近写了一个百度地图的项目,要求底部有一个导航栏。具体如下图:

vue实现nav导航栏的方法

首先,拿到了底部导航栏的所有图标图片,图片都有两种。灰色的代表未选中,选中的用带样色的图片替换。

先看一下,组件中 html结构:通过vue提供的v-for方法,进行遍历显示footNav这个数组。数组里边存放着{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布局可以很方便的实现导航栏。

.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 () 中定义一个数组,里边存放每一个导航的标题,如‘银行',未选中时显示的图片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: '医院 ', 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即可实现导航栏的点击状态的变化。

selectMapNav (title) {
 this.isSelect = title }

来看一下最终的结果,很完美。

vue实现nav导航栏的方法

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery EasyUI Dialog拖不下来如何解决
Sep 28 Javascript
基于JavaScript实现定时跳转到指定页面
Jan 01 Javascript
一次$.getJSON不执行的简单记录
Jul 19 Javascript
JS图片左右无缝隙滚动的实现(兼容IE,Firefox 遵循W3C标准)
Sep 23 Javascript
JS调用某段SQL语句的方法
Oct 20 Javascript
JS中事件冒泡和事件捕获介绍
Dec 13 Javascript
JQuery获取鼠标进入和离开容器的方向
Dec 29 Javascript
谈谈Vue.js——vue-resource全攻略
Jan 16 Javascript
Vue内容分发slot(全面解析)
Aug 19 Javascript
Vue DevTools调试工具的使用
Dec 05 Javascript
6行代码实现微信小程序页面返回顶部效果
Dec 28 Javascript
细说webpack6 Babel的使用详解
Sep 26 Javascript
vue实现导航栏效果(选中状态刷新不消失)
Dec 13 #Javascript
仿京东快报向上滚动的实例
Dec 13 #Javascript
Angular2使用vscode断点调试ts文件的方法
Dec 13 #Javascript
vue-router路由懒加载和权限控制详解
Dec 13 #Javascript
JS+canvas画一个圆锥实例代码
Dec 13 #Javascript
JS排序算法之冒泡排序,选择排序与插入排序实例分析
Dec 13 #Javascript
实例分析js事件循环机制
Dec 13 #Javascript
You might like
用PHP实现小型站点广告管理(修正版)
2006/10/09 PHP
用PHP和ACCESS写聊天室(七)
2006/10/09 PHP
php实现的网页版剪刀石头布游戏示例
2016/11/25 PHP
使用PHP+Redis实现延迟任务,实现自动取消订单功能
2019/11/21 PHP
js获取字符串最后一位方法汇总
2014/11/13 Javascript
最丑的时钟效果!js canvas时钟制作方法
2016/08/15 Javascript
微信小程序 es6-promise.js封装请求与处理异步进程
2017/06/12 Javascript
vue.js实现图书管理功能
2019/09/24 Javascript
JS实现TITLE悬停长久显示效果完整示例
2020/02/11 Javascript
vue中利用iscroll.js解决pc端滚动问题
2020/02/15 Javascript
vuecli3.x中轻松4步带你使用tinymce的步骤
2020/06/25 Javascript
[02:15]2014DOTA2国际邀请赛 专访LGD.lin小兔子是大腿
2014/07/14 DOTA
[02:17]2016国际邀请赛中国区预选赛VG战队领队采访
2016/06/26 DOTA
老生常谈python函数参数的区别(必看篇)
2017/05/29 Python
python中import reload __import__的区别详解
2017/10/16 Python
python实现根据文件关键字进行切分为多个文件的示例
2018/12/10 Python
python实现批量修改服务器密码的方法
2019/08/13 Python
使用python实现unix2dos和dos2unix命令的例子
2019/08/13 Python
Python使用Excel将数据写入多个sheet
2020/05/16 Python
CSS3中:nth-child和:nth-of-type的区别深入理解
2014/03/10 HTML / CSS
浅谈html5增强的页面元素
2016/06/14 HTML / CSS
意大利团购网站:Groupon意大利
2016/10/11 全球购物
美国零售商店:Blue&Cream
2017/04/07 全球购物
goodhealth官方海外旗舰店:新西兰国民营养师
2017/12/15 全球购物
Tommy Hilfiger澳洲官网:美国高端休闲领导品牌
2020/12/16 全球购物
JAVA和C++区别都有哪些
2015/03/30 面试题
装修五一活动策划案
2014/01/23 职场文书
银行开业庆典方案
2014/02/06 职场文书
幼儿教师求职信
2014/05/24 职场文书
民主评议党员总结
2014/10/20 职场文书
2014年乡镇纪委工作总结
2014/12/19 职场文书
亮剑观后感500字
2015/06/05 职场文书
八月迷情观后感
2015/06/11 职场文书
公司宣传语大全
2015/07/13 职场文书
2016道德模范先进事迹材料
2016/02/26 职场文书
python批量更改目录名/文件名的方法
2021/04/18 Python