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 相关文章推荐
javascript应用:Iframe自适应其加载的内容高度
Apr 10 Javascript
从盛大通行证上摘下来的身份证验证js代码
Jan 11 Javascript
js Event对象的5种坐标
Sep 12 Javascript
Jquery时间验证和转换工具小例子
Jul 01 Javascript
js 对小数加法精度处理示例说明
Dec 27 Javascript
JS网页图片按比例自适应缩放实现方法
Jan 15 Javascript
Javascript连接多个数组不用concat来解决
Mar 24 Javascript
JavaScript中的typeof操作符用法实例
Apr 05 Javascript
JS控制div跳转到指定的位置的几种解决方案总结
Nov 05 Javascript
JS刷新父窗口的几种方式小结(推荐)
Nov 09 Javascript
基于vue组件实现猜数字游戏
May 28 Javascript
Vue中插槽slot的使用方法与应用场景详析
Jun 08 Vue.js
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基础知识:类与对象(1)
2006/12/13 PHP
收藏的一个php小偷的核心程序
2007/04/09 PHP
用php随机生成福彩双色球号码的2种方法
2013/02/04 PHP
PHP+Ajax无刷新带进度条图片上传示例
2017/02/08 PHP
laravel 实现划分admin和home 模块分组
2019/10/15 PHP
laravel 解决crontab不执行的问题
2019/10/22 PHP
JavaScript 动态创建VML的方法
2009/10/14 Javascript
IE 当eval遇上function的处理
2011/08/09 Javascript
js实现点击图片改变页面背景图的方法
2015/02/28 Javascript
实例详解angularjs和ajax的结合使用
2015/10/22 Javascript
JS实现兼容性较好的随屏滚动效果
2015/11/09 Javascript
javascript构造函数以及原型对象的理解
2017/01/13 Javascript
JavaScript中利用构造器函数模拟类的方法
2017/02/16 Javascript
jQuery实现图片滑动效果
2017/03/08 Javascript
React Native之ListView实现九宫格效果的示例
2017/08/02 Javascript
微信小程序获取手机号授权用户登录功能
2017/11/09 Javascript
AngularJs 最新验证手机号码的实例,成功测试通过
2017/11/26 Javascript
小程序实现层叠卡片滑动效果
2019/08/26 Javascript
Vue 组件注册全解析
2020/12/17 Vue.js
Python如何通过subprocess调用adb命令详解
2017/08/27 Python
Python实现图片滑动式验证识别方法
2017/11/09 Python
python绘制简单折线图代码示例
2017/12/19 Python
python实现图片识别汽车功能
2018/11/30 Python
Python实现高斯函数的三维显示方法
2018/12/29 Python
Python面向对象思想与应用入门教程【类与对象】
2019/04/12 Python
Python中使用gflags实例及原理解析
2019/12/13 Python
jupyter notebook的安装与使用详解
2020/05/18 Python
Python自动登录QQ的实现示例
2020/08/28 Python
Rosetta Stone官方网站:语言学习
2019/01/05 全球购物
世界顶级户外运动品牌折扣网站:LeftLane Sports
2019/06/12 全球购物
俄罗斯便宜的在线服装商店:GroupPrice
2020/04/10 全球购物
金融专业个人的自我评价
2013/10/18 职场文书
中英双版中文教师求职信
2013/10/27 职场文书
老同学聚会感言
2014/02/23 职场文书
法院授权委托书范文
2014/08/02 职场文书
运动会入场词
2015/07/18 职场文书