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


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编程起步(第六课)
Feb 27 Javascript
基于jquery的修改当前TAB显示标题的代码
Dec 11 Javascript
php对mongodb的扩展(小试牛刀)
Nov 11 Javascript
解决html按钮切换绑定不同函数后点击时执行多次函数问题
May 14 Javascript
JavaScript中getUTCMinutes()方法的使用详解
Jun 10 Javascript
canvas实现刮刮卡效果
Mar 14 Javascript
详解Angular2组件之间如何通信
Jun 22 Javascript
Vue-cli-webpack搭建斗鱼直播步骤详解
Nov 17 Javascript
基于vue-ssr服务端渲染入门详解
Jan 08 Javascript
详解element-ui中el-select的默认选择项问题
Aug 02 Javascript
在vue中使用Echarts利用watch做动态数据渲染操作
Jul 20 Javascript
openlayers 3实现车辆轨迹回放
Sep 24 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
虫族 Zerg 魔法科技
2020/03/14 星际争霸
php函数指定默认值方法的小例子
2013/12/04 PHP
php正则匹配html中带class的div并选取其中内容的方法
2015/01/13 PHP
php使用post数组的键值创建同名变量并赋值的方法
2015/04/03 PHP
PHP开发APP端微信支付功能
2017/02/17 PHP
php图形jpgraph操作实例分析
2017/02/22 PHP
PHP实现从上往下打印二叉树的方法
2018/01/18 PHP
微信公众号之主动给用户发送消息功能
2019/06/22 PHP
jquery的颜色选择插件实例代码
2008/10/02 Javascript
jQuery EasyUI API 中文文档 - Draggable 可拖拽
2011/09/29 Javascript
文本框获得焦点和失去焦点的判断代码
2012/03/18 Javascript
关于在IE下的一个安全BUG --可用于跟踪用户的系统鼠标位置
2013/04/17 Javascript
基于OO的动画附加插件,可以实现弹跳、渐隐等动画效果 分享
2013/06/24 Javascript
实现动画效果核心方式的js代码
2013/09/27 Javascript
javascript中不提供sleep功能如何实现这个功能
2014/05/27 Javascript
JavaScript实现找出字符串中第一个不重复的字符
2014/09/03 Javascript
JS实现点击颜色块切换指定区域背景颜色的方法
2015/02/25 Javascript
ionic实现带字的toggle滑动组件
2016/08/27 Javascript
使用JS实现图片展示瀑布流效果的实例代码
2016/09/12 Javascript
jQuery grep()方法详解及实例代码
2016/10/30 Javascript
js 用于检测类数组对象的函数方法
2017/05/02 Javascript
vue-router源码之history类的浅析
2019/05/21 Javascript
关于layui导航栏不展示下拉列表的解决方法
2019/09/25 Javascript
javaScript中indexOf用法技巧
2019/11/26 Javascript
Vue组件模板及组件互相引用代码实例
2020/03/11 Javascript
12 种使用Vue 的最佳做法
2020/03/30 Javascript
[04:53]DOTA2英雄基础教程 祈求者
2014/01/03 DOTA
html5 css3 动态气泡按钮实例演示
2012/12/02 HTML / CSS
贺卡寄语大全
2014/04/11 职场文书
文明礼貌演讲稿
2014/05/12 职场文书
英语系毕业生求职信
2014/07/13 职场文书
销售辞职信范文
2015/03/02 职场文书
2015年班组建设工作总结
2015/05/13 职场文书
2016年公司“3.12”植树节活动总结
2016/03/16 职场文书
MySQL中int (10) 和 int (11) 的区别
2022/01/22 MySQL
MySQL范围查询优化的场景实例详解
2022/06/10 MySQL