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


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 相关文章推荐
IE6不能修改NAME问题的解决方法
Sep 03 Javascript
ASP.NET中基于JQUERY的高性能的TreeView补充
Feb 23 Javascript
检查输入的是否是数字使用keyCode配合onkeypress事件
Jan 23 Javascript
屏蔽相应键盘按钮操作
Mar 10 Javascript
jQuery Validate表单验证入门学习
Dec 18 Javascript
浅析AngularJs HTTP响应拦截器
Dec 28 Javascript
Angular Module声明和获取重载实例代码
Sep 14 Javascript
JS button按钮实现submit按钮提交效果
Nov 01 Javascript
详解node.js搭建代理服务器请求数据
Apr 08 Javascript
使用vux实现上拉刷新功能遇到的坑
Feb 08 Javascript
微信小程序实现原生步骤条
Jul 25 Javascript
node.js中npm包管理工具用法分析
Feb 14 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
使用PHP提取视频网站页面中的FLASH地址的代码
2010/04/17 PHP
PHP 命令行参数详解及应用
2011/05/18 PHP
php使用数组填充下拉列表框的方法
2015/03/31 PHP
php将数组存储为文本文件方法汇总
2015/10/28 PHP
Laravel接收前端ajax传来的数据的实例代码
2017/07/20 PHP
PHP 应用容器化以及部署方法
2018/02/12 PHP
filemanage功能中用到的lib.js
2007/04/08 Javascript
javascript模仿msgbox提示效果代码
2008/06/10 Javascript
调用innerHTML之后onclick失效问题的解决方法
2014/01/28 Javascript
chrome下img加载对height()的影响示例探讨
2014/05/26 Javascript
初始Nodejs
2014/11/08 NodeJs
js Calender控件使用详解
2015/01/05 Javascript
jquery插件orbit.js实现图片折叠轮换特效
2015/04/14 Javascript
JavaScript学习笔记之ES6数组方法
2016/03/25 Javascript
javascript时间戳和日期字符串相互转换代码(超简单)
2016/06/22 Javascript
Javascript 两种刷新方法以及区别和适用范围
2017/01/17 Javascript
Vue的Flux框架之Vuex状态管理器
2017/07/30 Javascript
[05:46]DOTA2英雄梦之声_第18期_陈
2014/06/20 DOTA
python3使用urllib示例取googletranslate(谷歌翻译)
2014/01/23 Python
python生成随机密码或随机字符串的方法
2015/07/03 Python
Redis使用watch完成秒杀抢购功能的代码
2018/05/07 Python
Python使用正则表达式分割字符串的实现方法
2019/07/16 Python
Python Opencv提取图片中某种颜色组成的图形的方法
2019/09/19 Python
HTML5-WebSocket实现聊天室示例
2016/12/15 HTML / CSS
奥地利智能家居和智能生活网上商店:tink.at
2019/10/07 全球购物
初中物理教学反思
2014/01/14 职场文书
留学推荐信写作指南
2014/01/25 职场文书
《埃及的金字塔》教学反思
2014/04/07 职场文书
企业诚信承诺书
2014/05/23 职场文书
销售人才自我评价范文
2014/09/27 职场文书
2014年初三班主任工作总结
2014/12/05 职场文书
初三英语教学计划
2015/01/23 职场文书
感恩母亲节活动总结
2015/02/10 职场文书
怎样写好工作计划
2019/04/10 职场文书
Python 循环读取数据内存不足的解决方案
2021/05/25 Python
ICOM R71E和R72E图文对比解说
2022/04/07 无线电