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


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(来自ibm)
Nov 10 Javascript
JavaScript在for循环中绑定事件解决事件参数不同的情况
Jan 20 Javascript
JavaScript中一个奇葩的IE浏览器判断方法
Apr 16 Javascript
javascript定义类和类的实现实例详解
Dec 01 Javascript
引用jquery框架后出错的解决方法
Aug 09 Javascript
轻松理解JavaScript闭包
Mar 14 Javascript
jQuery移动端跑马灯抽奖特效升级版(抽奖概率固定)实现方法
Jan 18 jQuery
JavaScript实现简单贪吃蛇效果
Mar 09 Javascript
vue模块移动组件的实现示例
May 20 Javascript
JavaScript ES6的函数拓展
Jan 18 Javascript
关于JS中的作用域中的问题思考分享
Apr 06 Javascript
字节飞书面试promise.all实现示例
Jun 16 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
《星际争霸》各版本雷兽特点图文解析 雷兽不同形态一览
2020/03/02 星际争霸
PHP与javascript实现变量交互的示例代码
2013/07/23 PHP
php中的Base62类(适用于数值转字符串)
2013/08/12 PHP
PHP swoole和redis异步任务实现方法分析
2019/08/12 PHP
PHP filter_var() 函数, 验证判断EMAIL,URL等
2021/03/09 PHP
利用jQuery插件扩展识别浏览器内核与外壳的类型和版本的实现代码
2011/10/22 Javascript
JS是按值传递还是按引用传递
2015/01/30 Javascript
jQuery实现无限往下滚动效果代码
2016/04/16 Javascript
jQuery下拉框的简单应用
2016/06/24 Javascript
Javascript 制作图形验证码实例详解
2016/12/22 Javascript
微信小程序实战之轮播图(3)
2017/04/17 Javascript
AngularJS使用拦截器实现的loading功能完整实例
2017/05/17 Javascript
详解vuex 中的 state 在组件中如何监听
2017/05/23 Javascript
浅谈nodejs中的类定义和继承的套路
2017/07/26 NodeJs
详解webpack性能优化——DLL
2017/10/20 Javascript
浅析vue中的MVVM实现原理
2019/03/04 Javascript
js blob类型url的视频下载问题的解决
2019/11/29 Javascript
JavaScript中的各种宽高属性的实现
2020/05/08 Javascript
vue-router重写push方法,解决相同路径跳转报错问题
2020/08/07 Javascript
Phantomjs抓取渲染JS后的网页(Python代码)
2016/05/13 Python
Python线性拟合实现函数与用法示例
2018/12/13 Python
Python Matplotlib库安装与基本作图示例
2019/01/09 Python
Python-Seaborn热图绘制的实现方法
2019/07/15 Python
Python之——生成动态路由轨迹图的实例
2019/11/22 Python
python实现读取类别频数数据画水平条形图案例
2020/04/24 Python
Python 整行读取文本方法并去掉readlines换行\n操作
2020/09/03 Python
css3动画效果抖动解决方法
2018/09/03 HTML / CSS
丝芙兰美国官网:SEPHORA美国
2016/08/03 全球购物
英国男女奢华内衣和泳装购物网站:Figleaves
2017/01/28 全球购物
美国礼品卡商城: Gift Card Mall
2017/08/25 全球购物
师范应届生教师求职信
2013/11/05 职场文书
社区七一党员活动方案
2014/01/25 职场文书
元旦标语大全
2014/10/09 职场文书
保密工作整改报告
2014/11/06 职场文书
师德先进个人事迹材料
2014/12/19 职场文书
离开雷锋的日子观后感
2015/06/09 职场文书