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


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 相关文章推荐
用JQuery调用Session的实现代码
Oct 29 Javascript
SharePoint 客户端对象模型 (一) ECMA Script
May 22 Javascript
Js实现当前点击a标签变色突出显示其他a标签回复原色
Nov 27 Javascript
简单的js图片轮换代码(js图片轮播)
May 06 Javascript
jQuery替换textarea中换行的方法
Jun 10 Javascript
vue实现todolist单页面应用
Apr 11 Javascript
JS实现合并json对象的方法
Oct 10 Javascript
vue.js动画中的js钩子函数的实现
Jul 06 Javascript
vue中使用cookies和crypto-js实现记住密码和加密的方法
Oct 18 Javascript
详解vuex状态管理模式
Nov 01 Javascript
微信小程序云开发之数据库操作
May 18 Javascript
微信小程序对图片进行canvas压缩的方法示例详解
Nov 12 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
NO3第三帝国留言簿制作过程
2006/10/09 PHP
php disk_free_space 返回目录可用空间
2010/05/10 PHP
PHP+HTML+JavaScript+Css实现简单爬虫开发
2016/03/28 PHP
PHP使用SWOOLE扩展实现定时同步 MySQL 数据
2017/04/09 PHP
JMenuTab简单使用说明
2008/03/13 Javascript
判断脚本加载是否完成的方法
2009/05/26 Javascript
JavaScript 直接操作本地文件的实现代码
2009/12/01 Javascript
理解Javascript_11_constructor实现原理
2010/10/18 Javascript
基于jQuery实现的水平和垂直居中的div窗口
2011/08/08 Javascript
jQuery Easyui使用(二)之可折叠面板动态加载无效果的解决方法
2016/08/17 Javascript
基于jQuery实现顶部导航栏功能
2016/12/27 Javascript
js处理包含中文的字符串实例
2017/10/11 Javascript
vue按需加载实例详解
2019/09/06 Javascript
js实现图片3D轮播效果
2019/09/21 Javascript
Vue可自定义tab组件用法实例
2019/10/24 Javascript
vue项目创建步骤及路由router
2020/01/14 Javascript
微信小程序单选框自定义赋值
2020/05/26 Javascript
react+antd 递归实现树状目录操作
2020/11/02 Javascript
[19:26]TNC vs EG (BO3)
2018/06/07 DOTA
Python编写屏幕截图程序方法
2015/02/18 Python
python 通过类中一个方法获取另一个方法变量的实例
2019/01/22 Python
python Django里CSRF 对应策略详解
2019/08/05 Python
使用tensorflow DataSet实现高效加载变长文本输入
2020/01/20 Python
html5默认气泡修改的代码详解
2020/03/13 HTML / CSS
Desigual美国官方网站:西班牙服装品牌
2019/03/29 全球购物
公司拓展活动方案
2014/02/13 职场文书
市场专员岗位职责
2014/02/14 职场文书
手术室护士节演讲稿
2014/08/27 职场文书
2014年教师节座谈会发言稿
2014/09/10 职场文书
教师节联欢会主持词
2015/07/04 职场文书
街道办残联2016年助残日活动总结
2016/04/01 职场文书
2019个人半年工作总结
2019/06/21 职场文书
字典算法实现及操作 --python(实用)
2021/03/31 Python
python 调用js的四种方式
2021/04/11 Python
Vue3如何理解ref toRef和toRefs的区别
2022/02/18 Vue.js
Java 超详细讲解十大排序算法面试无忧
2022/04/08 Java/Android