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


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 checkbox 全选/反选及批量删除
Apr 28 Javascript
jquery中$(#form :input)与$(#form input)的区别
Aug 18 Javascript
JavaScript中双叹号!!作用示例介绍
Sep 21 Javascript
jquery实现带缩略图的可定制高度画廊效果(5种)
Aug 28 Javascript
jquery实现网站列表切换效果的2种方法
Aug 12 Javascript
微信小程序(三):网络请求
Jan 13 Javascript
使用BootStrap实现标签切换原理解析
Mar 14 Javascript
详解vue-cli快速构建项目以及引入bootstrap、jq
May 26 Javascript
jQuery动态添加.active 实现导航效果代码思路详解
Aug 29 jQuery
JavaScript模块模式实例详解
Oct 25 Javascript
JS实现提交表单前的数字及邮箱校检功能
Nov 13 Javascript
vue实现2048小游戏功能思路详解
May 09 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 配置open_basedir 让各虚拟站点独立运行
2009/11/12 PHP
使用PHP破解防盗链图片的一个简单方法
2014/06/07 PHP
改善你的jQuery的25个步骤 千倍级效率提升
2010/02/11 Javascript
判断浏览器的javascript版本的代码
2010/09/03 Javascript
JS操作Cookies的小例子
2013/10/15 Javascript
node.js中的fs.statSync方法使用说明
2014/12/16 Javascript
AngularJS使用自定义指令替代ng-repeat的方法
2016/09/17 Javascript
js实现京东轮播图效果
2017/06/30 Javascript
JS和JQuery实现雪花飘落效果
2017/11/30 jQuery
js如何获取图片url的Blob值并预览示例代码
2019/03/07 Javascript
使用Vue中 v-for循环列表控制按钮隐藏显示功能
2019/04/23 Javascript
vue中的mescroll搜索运用及各种填坑处理
2019/10/30 Javascript
解决vue中el-tab-pane切换的问题
2020/07/19 Javascript
Vue 中使用lodash对事件进行防抖和节流操作
2020/07/26 Javascript
Vue实现手机号、验证码登录(60s禁用倒计时)
2020/12/19 Vue.js
Python yield 使用方法浅析
2017/05/20 Python
python删除本地夹里重复文件的方法
2020/11/19 Python
利用python实现简易版的贪吃蛇游戏(面向python小白)
2018/12/30 Python
python+logging+yaml实现日志分割
2019/07/22 Python
Python批量启动多线程代码实例
2020/02/18 Python
Windows 下更改 jupyterlab 默认启动位置的教程详解
2020/05/18 Python
Python OrderedDict字典排序方法详解
2020/05/21 Python
keras中模型训练class_weight,sample_weight区别说明
2020/05/23 Python
Python创建文件夹与文件的快捷方法
2020/12/08 Python
Python实现Word文档转换Markdown的示例
2020/12/22 Python
Original Penguin英国官方网站:美国著名休闲时装品牌
2016/10/30 全球购物
台湾最大银发乐活百货:乐龄网
2018/05/21 全球购物
美国孕妇装购物网站:Motherhood Maternity
2019/09/22 全球购物
计算机应用专业毕业生求职信
2013/10/24 职场文书
领导干部群众路线剖析材料
2014/10/09 职场文书
2014年个人委托书范本
2014/10/13 职场文书
廉洁自律个人总结
2015/02/14 职场文书
Python基础之数据类型知识汇总
2021/05/18 Python
使用Pytorch实现two-head(多输出)模型的操作
2021/05/28 Python
利用python做数据拟合详情
2021/11/17 Python
MySQL分区路径子分区再分区
2022/04/13 MySQL