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 相关文章推荐
客户端js性能优化小技巧整理
Nov 05 Javascript
js或jquery实现页面打印可局部打印
Mar 27 Javascript
原生javascript实现获取指定元素下所有后代元素的方法
Oct 28 Javascript
js实现精美的图片跟随鼠标效果实例
May 16 Javascript
jQuery CSS3相结合实现时钟插件
Jan 08 Javascript
AngularJS上拉加载问题解决方法
May 23 Javascript
AngularJS基础 ng-show 指令简单示例
Aug 03 Javascript
jQuery多个版本和其他js库冲突的解决方法
Aug 11 Javascript
webpack将js打包后的map文件详解
Feb 22 Javascript
2种在vue项目中使用百度地图的简单方法
Sep 28 Javascript
微信小程序保存多张图片的实现方法
Mar 05 Javascript
小程序实现密码输入框
Nov 16 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
phpMyAdmin下载、安装和使用入门教程
2007/05/31 PHP
基于在生产环境中使用php性能测试工具xhprof的详解
2013/06/03 PHP
PHP附件下载中文名称乱码的解决方法
2015/12/17 PHP
yii2 页面底部加载css和js的技巧
2016/04/21 PHP
php微信公众号开发(4)php实现自定义关键字回复
2016/12/15 PHP
PHP编程实现计算抽奖概率算法完整实例
2017/08/09 PHP
Javascript 跨域访问解决方案
2009/02/14 Javascript
javascript 实用的文字链提示框效果
2010/06/30 Javascript
原生javascript兼容性测试实例
2013/07/01 Javascript
jquery parent和parents的区别分析
2013/10/02 Javascript
jquery中ready()函数执行的时机和window的load事件比较
2015/06/22 Javascript
JS获取数组最大值、最小值及长度的方法
2015/11/24 Javascript
AngularJS控制器继承自另一控制器
2016/05/09 Javascript
AngularJS基础 ng-class-odd 指令示例
2016/08/01 Javascript
在JSP中如何实现MD5加密的方法
2016/11/02 Javascript
BootStrap Validator对于隐藏域验证和程序赋值即时验证的问题浅析
2016/12/01 Javascript
详解Angular-ui-BootStrap组件的解释以及使用
2018/07/13 Javascript
微信小程序实现默认第一个选中变色效果
2018/07/17 Javascript
在vue使用clipboard.js进行一键复制文本的实现示例
2019/01/15 Javascript
js实现for循环跳过undefined值示例
2019/07/02 Javascript
JS合并两个数组的3种方法详解
2019/10/24 Javascript
python实现给字典添加条目的方法
2014/09/25 Python
Python使用xlrd读取Excel格式文件的方法
2015/03/10 Python
Python文件右键找不到IDLE打开项解决办法
2015/06/08 Python
python结合shell查询google关键词排名的实现代码
2016/02/27 Python
Python二叉搜索树与双向链表转换实现方法
2016/04/29 Python
Python django搭建layui提交表单,表格,图标的实例
2019/11/18 Python
python如何求数组连续最大和的示例代码
2020/02/04 Python
pycharm运行程序时看不到任何结果显示的解决
2020/02/21 Python
python列表删除和多重循环退出原理详解
2020/03/26 Python
浅谈matplotlib中FigureCanvasXAgg的用法
2020/06/16 Python
Java面试题及答案
2012/09/08 面试题
静态变量和实例变量的区别
2015/07/07 面试题
高中毕业生的个人自我评价
2014/02/21 职场文书
十佳家长事迹材料
2014/08/26 职场文书
高中开学感言
2015/08/01 职场文书