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


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代码
Aug 13 Javascript
按Enter键触发事件的jquery方法实现代码
Feb 17 Javascript
javascript实现类似百度分享功能的方法
Jul 27 Javascript
jquery实现具有嵌套功能的选项卡
Feb 12 Javascript
微信小程序 Nginx环境配置详细介绍
Feb 14 Javascript
js实现楼层导航功能
Feb 23 Javascript
node前端开发模板引擎Jade的入门
May 11 Javascript
详解Angular中实现自定义组件的双向绑定的两种方法
Nov 23 Javascript
vue组件数据传递、父子组件数据获取,slot,router路由功能示例
Mar 19 Javascript
微信小程序实现折线图的示例代码
Jun 07 Javascript
JS 设计模式之:工厂模式定义与实现方法浅析
May 06 Javascript
JS实现前端路由功能示例【原生路由】
May 29 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转成EXE文件
2006/10/09 PHP
让你成为更出色的PHP开发者的10个技巧
2011/02/25 PHP
详解PHP执行定时任务的实现思路
2015/12/21 PHP
PHP面向对象多态性实现方法简单示例
2017/09/27 PHP
PHP设计模式之迭代器模式Iterator实例分析【对象行为型】
2020/04/26 PHP
图片按比例缩放函数
2006/06/26 Javascript
XmlUtils JS操作XML工具类
2009/10/01 Javascript
jquery中this的使用说明
2010/09/06 Javascript
jquery遍历checkbox的注意事项说明
2014/02/21 Javascript
JS实现文字链接感应鼠标淡入淡出改变颜色的方法
2015/02/26 Javascript
JavaScript控制网页平滑滚动到指定元素位置的方法
2015/04/17 Javascript
js实现iPhone界面风格的单选框和复选框按钮实例
2015/08/18 Javascript
javascript常见数字进制转换实例分析
2016/04/21 Javascript
Javascript自执行匿名函数(function() { })()的原理浅析
2016/05/15 Javascript
AngularJS下对数组的对比分析
2016/08/24 Javascript
jQuery EasyUI常用数据验证汇总
2016/09/18 Javascript
js从输入框读取内容,比较两个数字的大小方法
2017/03/13 Javascript
iscroll动态加载数据完美解决方法
2017/07/18 Javascript
IE11下使用canvas.toDataURL报SecurityError错误的解决方法
2017/11/19 Javascript
浅析从vue源码看观察者模式
2018/01/29 Javascript
Preload基础使用方法详解
2020/02/03 Javascript
JavaScript代码压缩工具UglifyJS和Google Closure Compiler的基本用法
2020/04/13 Javascript
vue中提示$index is not defined错误的解决方式
2020/09/02 Javascript
Python中的元类编程入门指引
2015/04/15 Python
用Python实现KNN分类算法
2017/12/22 Python
python版学生管理系统
2018/01/10 Python
python调用百度语音识别实现大音频文件语音识别功能
2018/08/30 Python
Python高阶函数、常用内置函数用法实例分析
2019/12/26 Python
Python使用enumerate获取迭代元素下标
2020/02/03 Python
python批量修改xml属性的实现方式
2020/03/05 Python
在pytorch中动态调整优化器的学习率方式
2020/06/24 Python
使用npy转image图像并保存的实例
2020/07/01 Python
美国在线家具网站:GDFStudio
2021/03/13 全球购物
涉密人员保密承诺书
2014/05/28 职场文书
新教师培训心得体会
2014/09/02 职场文书
三八妇女节标语
2014/10/09 职场文书