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 浮动广告实现代码
Dec 25 Javascript
jQuery建立一个按字母顺序排列的友好页面索引(兼容IE6/7/8)
Feb 26 Javascript
前端开发过程中浏览器版本的两种判定方法
Oct 30 Javascript
浅析javascript 定时器
Dec 23 Javascript
jquery实现选中单选按钮下拉伸缩效果
Aug 06 Javascript
JavaScript箭头函数_动力节点Java学院整理
Jun 28 Javascript
如何选择适合你的JavaScript框架
Nov 20 Javascript
vue 解决移动端弹出键盘导致页面fixed布局错乱的问题
Nov 06 Javascript
Vue打包后访问静态资源路径问题
Nov 08 Javascript
小程序外卖订单界面的示例代码
Dec 30 Javascript
微信小程序onShareTimeline()实现分享朋友圈
Jan 07 Javascript
JavaScript中isPrototypeOf函数
Nov 07 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下使用以下代码连接并测试
2008/04/09 PHP
PHP Squid中可缓存的动态网页设计
2008/09/17 PHP
解析php中die(),exit(),return的区别
2013/06/20 PHP
PHP @ at 记号的作用示例介绍
2014/10/10 PHP
php生成高清缩略图实例详解
2015/12/07 PHP
JavaScript事件列表解说
2006/12/22 Javascript
javascript parseInt与Number函数的区别
2010/01/21 Javascript
js prototype截取字符串函数
2010/04/01 Javascript
SlideView 图片滑动(扩展/收缩)展示效果
2010/08/01 Javascript
formvalidator验证插件中有关ajax验证问题
2013/01/04 Javascript
jQuery bxCarousel实现图片滚动切换效果示例代码
2013/05/15 Javascript
js的回调函数详解
2015/01/05 Javascript
angular简介和其特点介绍
2015/01/29 Javascript
jQuery实现三级菜单的代码
2016/05/09 Javascript
bootstarp modal框居中显示的实现代码
2017/02/18 Javascript
JavaScript实现二维坐标点排序效果
2017/07/18 Javascript
VUE中的无限循环代码解析
2017/09/22 Javascript
jQuery AJAX 方法success()后台传来的4种数据详解
2018/08/08 jQuery
Bootstrap模态对话框用法简单示例
2018/08/31 Javascript
对于防止按钮重复点击的尝试详解
2019/04/22 Javascript
python使用nntp读取新闻组内容的方法
2015/05/08 Python
使用Python的Flask框架构建大型Web应用程序的结构示例
2016/06/04 Python
Python中字典(dict)合并的四种方法总结
2017/08/10 Python
Python Grid使用和布局详解
2018/06/30 Python
教你一步步利用python实现贪吃蛇游戏
2019/06/27 Python
在python3中实现查找数组中最接近与某值的元素操作
2020/02/29 Python
python3发送request请求及查看返回结果实例
2020/04/30 Python
Python函数递归调用实现原理实例解析
2020/08/11 Python
利用python进行文件操作
2020/12/04 Python
ddl,dml和dcl的含义
2016/05/08 面试题
语文教研活动总结
2014/07/02 职场文书
交通事故委托书范本
2014/09/28 职场文书
中学教师个人总结
2015/02/10 职场文书
2015年农村党员公开承诺事项
2015/04/28 职场文书
基于MySql验证的vsftpd虚拟用户
2021/11/07 MySQL
《金肉人》米特&《航海王》阿鹤声优松岛实因胰脏癌去世 享寿81岁
2022/04/13 日漫