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


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实现读取txt文档的脚本
Jul 20 Javascript
JS 有名函数表达式全面解析
Mar 19 Javascript
写给想学习Javascript的朋友一点学习经验小结
Nov 23 Javascript
简要了解jQuery移动web开发的响应式布局设计
Dec 04 Javascript
实例剖析AngularJS框架中数据的双向绑定运用
Mar 04 Javascript
详解JavaScript中基于原型prototype的继承特性
May 05 Javascript
基于BootStrap环境写jQuery tabs插件
Jul 12 Javascript
对称加密与非对称加密优缺点详解
Feb 06 Javascript
原生JS实现小小的音乐播放器
Oct 16 Javascript
动态统计当前输入内容的字节、字符数的实例详解
Oct 27 Javascript
纯javascript实现选择框的全选与反选功能
Apr 08 Javascript
使用JavaScript获取扫码枪扫描得到的条形码的思路代码详解
Jun 10 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事务处理实例详解
2014/07/11 PHP
PHP实现二维数组按某列进行排序的方法
2016/11/18 PHP
怎么用javascript进行拖拽
2006/07/20 Javascript
jquery实现图片滚动效果的简单实例
2013/11/23 Javascript
jQuery 仿百度输入标签插件附效果图
2014/07/04 Javascript
DOM 事件流详解
2015/01/20 Javascript
JavaScript生成随机字符串的方法
2015/03/19 Javascript
JavaScript输出当前时间Unix时间戳的方法
2015/04/06 Javascript
浅谈javascript语法和定时函数
2015/05/03 Javascript
JavaScript中捕获/阻止捕获、冒泡/阻止冒泡方法
2016/12/07 Javascript
js实现五星评价功能
2017/03/08 Javascript
javascript基本数据类型和转换
2017/03/17 Javascript
vue通过watch对input做字数限定的方法
2017/07/13 Javascript
jquery.uploadView 实现图片预览上传功能
2017/08/10 jQuery
JS图片延迟加载插件LazyImgv1.0用法分析【附demo源码下载】
2017/09/04 Javascript
koa+jwt实现token验证与刷新功能
2019/05/30 Javascript
Vue项目中使用better-scroll实现菜单映射功能方法
2019/09/11 Javascript
vue实现评论列表功能
2019/10/25 Javascript
Python入门之三角函数全解【收藏】
2017/11/08 Python
Python操作MongoDB数据库的方法示例
2018/01/04 Python
Python面向对象程序设计多继承和多态用法示例
2019/04/08 Python
Python语言进阶知识点总结
2019/05/28 Python
django框架模型层功能、组成与用法分析
2019/07/30 Python
基于python调用jenkins-cli实现快速发布
2020/08/14 Python
Europcar英国:英国汽车和货车租赁
2017/01/21 全球购物
你所知道的集合类都有哪些?主要方法?
2012/12/31 面试题
介绍一下Java中标识符的命名规则
2014/02/03 面试题
24岁生日感言
2014/01/13 职场文书
药店采购员岗位职责
2014/09/30 职场文书
公路局群众路线教育实践活动第一阶段工作汇报
2014/10/25 职场文书
汽车转让协议书范本
2014/12/07 职场文书
二审答辩状范文
2015/05/22 职场文书
六一晚会主持词开场白
2015/05/28 职场文书
pytorch通过训练结果的复现设置随机种子
2021/06/01 Python
Golang 语言控制并发 Goroutine的方法
2021/06/30 Golang
MySQL 中如何归档数据的实现方法
2022/03/16 SQL Server