微信小程序使用自定义组件导航实现当前页面高亮
最近开发小程序,需要做一个导航,导航可以通过template写出来,但是这个项目需要在导航中处理一些逻辑,做成组件更方便些。
首先新建header文件夹,里面新建对应的js、json、wxml、wxss文件。
<!-- 公共头部组件 --> <view class='headers'> <navigator open-type="redirectTo" class='logo' url="../index/index" hover-class="none"> <image src="../../assets/img/logo2.png" mode="widthFix"></image> </navigator> <view class="phone_nav_switch" bindtap="controlNav"> <view class="iconfont icon-daohang" hidden="{{navIsShow}}"></view> <view class="iconfont icon-guanbi" hidden="{{!navIsShow}}"></view> </view> <view class="nav"> <view class="shadow {{navIsShow ? 'active':''}}" bindtap="controlNav"></view> <view class="bg {{navIsShow ? 'active':''}}"> <view class='con' wx:for="{{navs}}" wx:key="item.url"> <navigator open-type="redirect" data-index="{{index}}" class="{{index === navActive ? 'active' : ''}}" url="{{item.url}}" hover-class="none"> {{item.text}} </navigator> </view> </view> </view> <!-- 返回顶部 --> <view class="backTop" bindtap="goTop" hidden='{{floorstatus}}'> <text class="icon iconfont icon-iconfonticontrianglecopy"></text> </view> </view>
header.js里的导航数据
/** * 组件的属性列表 */ properties: { // 当前导航高亮 navActive: { // 类型 type: Number, // 默认值 value: 0 } }, data: { // 导航开关 navIsShow: false, currentIndexNav: 0, // floorstatus: false, navs: [ { text: '网站首页', url: '../index/index' }, { text: '招商加盟', url: '../join/join' }, { text: '关于煮田', url: '../about/about' }, { text: '煮田美食', url: '../food/food' }, { text: '最新资讯', url: '../news/news' }, { text: '门店查询', url: '../search/search' }, { text: '联系我们', url: '../contact/contact' }, { text: '视频列表', url: '../videoItem/videoItem' } ] },
导航放在class="nav"中,header.json文件中写入
{ "component": true }
需要引入组件的页面的json文件写入,比如index.json
{ "component": true, "usingComponents": { "header":"../header/header" } }
然后在index.wxml引入组件,navActive是传给组件的值,目的是为了对应导航组件内的导航每一项的index,比如首页的index为0,那我在首页内定义的navActive就是0,
<!-- 头部组件 --> <view class='header'> <!-- 导航高亮传值 --> <header navActive='0'></header> </view>
如果相等当前页面就会高亮
需要在在heaer.js设置navActive的类型,通过上面的操作,我是能够实现当前页面导航高亮的
,
希望能帮到需要的人,如果觉得我上面写的不清楚的话,这是我的github
https://github.com/mazixiao/wechat_zhutian
,这个是我做好了的
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
上一篇:微信小程序中的video视频实现 自定义 按钮、封面图、视频封面上文案
栏 目:JavaScript
下一篇:JavaScript 变量,数据类型基础实例详解【变量、字符串、数组、对象等】
本文地址:https://www.xiuzhanwang.com/a1/JavaScript/9321.html
您可能感兴趣的文章
- 04-02java吃豆人代码 js吃豆人
- 04-02微信挑一挑java代码 微信挑一挑java代码怎么做
- 01-10小程序简单两栏瀑布流效果的实现
- 01-10微信小程序批量上传图片到七牛(推荐)
- 01-10微信小程序跨页面数据传递事件响应实现过程解析
- 01-10微信小程序按顺序同步执行的两种方式
- 01-10ES6常用小技巧总结【去重、交换、合并、反转、迭代、计算等】
- 01-10微信小程序实现签字功能
- 01-10JS实现关闭小广告特效
- 01-10javascript实现点击星星小游戏
阅读排行
本栏相关
- 04-02javascript点线,点线的代码
- 04-02javascript潜力,javascript强大吗
- 04-02javascript替换字符串,js字符串的替换
- 04-02javascript移出,js 移入移出
- 04-02包含javascript舍的词条
- 04-02javascript并行,深入理解并行编程 豆瓣
- 04-02javascript匿名,js匿名方法
- 04-02javascript警报,JavaScript警告
- 04-02javascript遮盖,JavaScript遮盖PC端页面
- 04-02javascript前身,javascript的前身
随机阅读
- 08-05DEDE织梦data目录下的sessions文件夹有什
- 01-10delphi制作wav文件的方法
- 04-02jquery与jsp,用jquery
- 08-05织梦dedecms什么时候用栏目交叉功能?
- 08-05dedecms(织梦)副栏目数量限制代码修改
- 01-11Mac OSX 打开原生自带读写NTFS功能(图文
- 01-10SublimeText编译C开发环境设置
- 01-11ajax实现页面的局部加载
- 01-10使用C语言求解扑克牌的顺子及n个骰子
- 01-10C#中split用法实例总结