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


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 相关文章推荐
纯js代码实现未知宽高的元素在指定元素中垂直水平居中显示
Sep 12 Javascript
使用Object.defineProperty实现简单的js双向绑定
Apr 15 Javascript
Javascript基础教程之比较null和undefined值
May 16 Javascript
基于jQuery实现多标签页切换的效果(web前端开发)
Jul 24 Javascript
vue实现验证码输入框组件
Dec 14 Javascript
LayUI表格批量删除方法
Aug 15 Javascript
Bootstrap table 实现树形表格联动选中联动取消功能
Sep 30 Javascript
vue路由传参三种基本方式详解
Dec 09 Javascript
解决微信小程序scroll-view组件无横向滚动的问题
Feb 04 Javascript
Vue CLI3移动端适配(px2rem或postcss-plugin-px2rem)
Apr 27 Javascript
js实现表格数据搜索
Aug 09 Javascript
SpringBoot在yml配置文件中配置druid的操作
Nov 16 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+mysql分页代码详解
2008/03/27 PHP
PHP 文件上传全攻略
2010/04/28 PHP
关于UEditor编辑器远程图片上传失败的解决办法
2012/08/31 PHP
phpmyadmin配置文件现在需要绝密的短密码(blowfish_secret)的2种解决方法
2014/05/07 PHP
VB中的RasEnumConnections函数返回632错误解决方法
2014/07/29 PHP
用PHP代码给图片加水印
2015/07/01 PHP
深入浅析php中sprintf与printf函数的用法及区别
2016/01/08 PHP
jQuery Tools tab使用介绍
2012/07/14 Javascript
js隐藏与显示回到顶部按钮及window.onscroll事件应用
2013/01/25 Javascript
ExtJS4 Grid改变单元格背景颜色及Column render学习
2013/02/06 Javascript
JavaScript类属性的访问方式详解
2014/02/11 Javascript
用js设置下拉框为只读的小技巧
2014/04/10 Javascript
js由下向上不断上升冒气泡效果实例
2015/05/07 Javascript
ECMAScript6块级作用域及新变量声明(let)
2015/06/12 Javascript
JavaScript获取并更改input标签name属性的方法
2015/07/02 Javascript
Vue.js实现表格动态增加删除的方法(附源码下载)
2017/01/20 Javascript
JS 组件系列之Bootstrap Table的冻结列功能彻底解决高度问题
2017/06/30 Javascript
JS开发 富文本编辑器TinyMCE详解
2019/07/19 Javascript
手把手教你实现 Promise的使用方法
2020/09/02 Javascript
[58:57]2018DOTA2亚洲邀请赛3月29日小组赛B组 Effect VS VGJ.T
2018/03/30 DOTA
python中的列表推导浅析
2014/04/26 Python
讲解Python的Scrapy爬虫框架使用代理进行采集的方法
2016/02/18 Python
python正则分析nginx的访问日志
2017/01/17 Python
python实现接口并发测试脚本
2019/06/25 Python
安装好Pycharm后如何配置Python解释器简易教程
2019/06/28 Python
使用Python内置模块与函数进行不同进制的数的转换
2020/04/26 Python
详解如何修改jupyter notebook的默认目录和默认浏览器
2021/01/24 Python
Blank NYC官网:夹克、牛仔裤等
2020/12/16 全球购物
思想品德课教学反思
2014/02/10 职场文书
运动会稿件300字
2014/02/14 职场文书
初二学习计划书范文
2014/04/27 职场文书
学生期末评语大全
2014/04/30 职场文书
2015年党员自我剖析材料
2014/12/17 职场文书
检讨书范文1000字
2015/01/28 职场文书
公司文体活动总结
2015/05/07 职场文书
微软发布Windows 11今年最大更新22H2(附 ISO 镜像官方下载)
2022/09/23 数码科技