微信小程序使用自定义组件导航实现当前页面高亮


Posted in Javascript onJanuary 02, 2020

最近开发小程序,需要做一个导航,导航可以通过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
,这个是我做好了的

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

Javascript 相关文章推荐
javascript JSON操作入门实例
Apr 16 Javascript
AspNet中使用JQuery上传插件Uploadify详解
May 20 Javascript
javascript实现textarea中tab键的缩排处理方法
Jun 26 Javascript
JavaScript实现定时隐藏与显示图片的方法
Aug 06 Javascript
jQuery使用经验小技巧(推荐)
May 31 Javascript
10个经典的网页鼠标特效代码
Jan 09 Javascript
微信小程序canvas实现刮刮乐效果
Jul 09 Javascript
vue 使用自定义指令实现表单校验的方法
Aug 28 Javascript
使用iView Upload 组件实现手动上传图片的示例代码
Oct 01 Javascript
详解Vue.js v-for不支持IE9的解决方法
Dec 29 Javascript
Vue中JS动画与Velocity.js的结合使用
Feb 13 Javascript
微信小程序跨页面数据传递事件响应实现过程解析
Dec 19 Javascript
Vue 实现分页与输入框关键字筛选功能
Jan 02 #Javascript
jQuery实现的图片点击放大缩小功能案例
Jan 02 #jQuery
Vue 实现简易多行滚动&quot;弹幕&quot;效果
Jan 02 #Javascript
JS实现秒杀倒计时特效
Jan 02 #Javascript
在weex中愉快的使用scss的方法步骤
Jan 02 #Javascript
JS实现导航栏楼层特效
Jan 01 #Javascript
JS实现旋转木马轮播图
Jan 01 #Javascript
You might like
PHILIPS AE3805收音机的分析打磨
2021/03/02 无线电
使用PHP模拟HTTP认证
2006/10/09 PHP
php页面消耗内存过大的处理办法
2013/03/18 PHP
PHP利用超级全局变量$_GET来接收表单数据的实例
2016/11/05 PHP
Thinkphp5结合layer弹窗定制操作结果页面
2017/07/07 PHP
php use和include区别总结
2019/10/13 PHP
js判断浏览器的比较全的代码
2007/02/13 Javascript
JavaScript 变量基础知识
2009/11/07 Javascript
JS画线(实例代码)
2013/11/20 Javascript
jQuery中closest()函数用法实例
2015/01/07 Javascript
使用Node.js实现HTTP 206内容分片的教程
2015/06/23 Javascript
angularjs学习笔记之三大模块(modal,controller,view)
2015/09/26 Javascript
js原型链与继承解析(初体验)
2016/05/09 Javascript
JSON与XML的区别对比及案例应用
2016/11/11 Javascript
JavaScript中定义对象原型的两种使用方法
2016/12/15 Javascript
详解VUE中v-bind的基本用法
2017/07/13 Javascript
JavaScript实现兼容IE6的收起折叠与展开效果实例
2017/09/20 Javascript
微信小程序与公众号卡券/会员打通的问题
2019/07/25 Javascript
Vue中axios的封装(报错、鉴权、跳转、拦截、提示)
2019/08/20 Javascript
原生js实现简单轮播图
2020/10/26 Javascript
Python使用matplotlib简单绘图示例
2018/02/01 Python
Python实现抢购IPhone手机
2018/02/07 Python
selenium设置proxy、headers的方法(phantomjs、Chrome、Firefox)
2018/11/29 Python
pandas DataFrame 警告(SettingWithCopyWarning)的解决
2019/07/23 Python
python能做什么 python的含义
2019/10/12 Python
Django admin 实现search_fields精确查询实例
2020/03/30 Python
社区版pycharm创建django项目的方法(pycharm的newproject左侧没有项目选项)
2020/09/23 Python
Python远程linux执行命令实现
2020/11/11 Python
使用css3制作动感导航条示例
2014/01/26 HTML / CSS
adidas旗下高尔夫装备供应商:TaylorMade Golf(泰勒梅高尔夫)
2016/08/28 全球购物
俄罗斯披萨、寿司和面食送货到家服务:2 Берега
2019/12/15 全球购物
请说出几个常用的异常类
2013/01/08 面试题
终止或解除劳动合同及劳动关系的证明书
2014/10/06 职场文书
因个人原因离职的辞职信范文
2015/05/12 职场文书
Golang中channel的原理解读(推荐)
2021/10/16 Golang
一篇文章带你掌握SQLite3基本用法
2022/06/14 数据库