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


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 相关文章推荐
5个javascript的数字格式化函数分享
Dec 07 Javascript
js获得指定控件输入光标的坐标兼容IE,Chrome,火狐等多种主流浏览器
May 21 Javascript
jquery ajax post提交数据乱码
Nov 05 Javascript
JavaScript动态创建link标签到head里的方法
Dec 22 Javascript
ES6中如何使用Set和WeakSet
Mar 10 Javascript
JQuery 的跨域方法推荐_可跨任何网站
May 18 Javascript
jQuery EasyUI datagrid在翻页以后仍能记录被选中行的实现代码
Aug 15 Javascript
jQuery中ScrollTo用法示例
Sep 04 Javascript
前端跨域的几种解决方式总结(推荐)
Aug 16 Javascript
AngularJS中的路由使用及实现代码
Oct 09 Javascript
vue之debounce属性被移除及处理详解
Nov 13 Javascript
vuex页面刷新导致数据丢失的解决方案
Dec 10 Vue.js
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
客户端静态页面玩分页
2006/06/26 Javascript
收集的网上用的ajax之chat.js文件
2007/04/08 Javascript
JavaScript导出Excel实例详解
2014/11/25 Javascript
javascript实现的闭包简单实例
2015/07/17 Javascript
学习JavaScript设计模式之代理模式
2016/01/12 Javascript
jQuery easyui的validatebox校验规则扩展及easyui校验框validatebox用法
2016/01/18 Javascript
jQuery针对input的class属性写了多个值情况下的选择方法
2016/06/03 Javascript
JavaScript与JQUERY获取元素的宽、高和位置
2017/02/26 Javascript
在node中如何使用 ES6
2017/04/22 Javascript
ES6学习之变量的两种命名方法示例
2017/07/18 Javascript
jQuery 开发之EasyUI 添加数据的实例
2017/09/26 jQuery
JS实现区分中英文并统计字符个数的方法示例
2018/06/09 Javascript
vue项目中使用Svg的方法
2018/10/24 Javascript
基于 jQuery 实现键盘事件监听控件
2019/04/04 jQuery
详解小程序退出页面时清除定时器
2019/04/28 Javascript
vue中添加与删除关键字搜索功能
2019/10/12 Javascript
浅谈v-for 和 v-if 并用时筛选条件方法
2019/11/07 Javascript
VUEX-action可以修改state吗
2019/11/19 Javascript
JS+CSS+HTML实现“代码雨”类似黑客帝国文字下落效果
2020/03/17 Javascript
js实现手表表盘时钟与圆周运动
2020/09/18 Javascript
js实现简单的轮播图效果
2020/12/13 Javascript
[07:48]DOTA2上海特级锦标赛主赛事首日RECAP
2016/03/04 DOTA
Python3实现连接SQLite数据库的方法
2014/08/23 Python
python使用win32com库播放mp3文件的方法
2015/05/30 Python
django开发教程之利用缓存文件进行页面缓存的方法
2017/11/10 Python
Python之指数与E记法的区别详解
2019/11/21 Python
Python使用turtle库绘制小猪佩奇(实例代码)
2020/01/16 Python
找Python安装目录,设置环境路径以及在命令行运行python脚本实例
2020/03/09 Python
Django media static外部访问Django中的图片设置教程
2020/04/07 Python
python简单实现最大似然估计&amp;scipy库的使用详解
2020/04/15 Python
纯css3实现照片墙效果
2014/12/26 HTML / CSS
详解H5 活动页之移动端 REM 布局适配方法
2017/12/07 HTML / CSS
2014年大学生党课心得体会范文
2014/03/29 职场文书
2016年国培研修日志
2015/11/13 职场文书
MySQL去除重叠时间求时间差和的实现
2021/08/23 MySQL
Nginx隐藏式跳转(浏览器URL跳转后保持不变)
2022/04/07 Servers