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


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 相关文章推荐
cookie在javascript中的使用技巧以及隐私在服务器端的设置
Dec 03 Javascript
使图片旋转的3种解决方案
Nov 21 Javascript
Javascript实现网络监测的方法
Jul 31 Javascript
jquery利用拖拽方式在图片上添加热链接
Nov 24 Javascript
使用jquery.qrcode.min.js实现中文转化二维码
Mar 11 Javascript
jQuery EasyUI提交表单验证
Jul 19 Javascript
基于js中this和event 的区别(详解)
Oct 24 Javascript
laydate日历控件使用方法详解
Nov 20 Javascript
使用Sonarqube扫描Javascript代码的示例
Dec 26 Javascript
JS实现的进制转换,浮点数相加,数字判断操作示例
Nov 09 Javascript
vue实现随机验证码功能(完整代码)
Dec 10 Javascript
小程序瀑布流组件实现翻页与图片懒加载
May 19 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旋转图片90度的方法
2013/11/07 PHP
thinkphp文件引用与分支结构用法实例
2014/11/26 PHP
php遍历类中包含的所有元素的方法
2015/05/12 PHP
PHP XML和数组互相转换详解
2016/10/26 PHP
用Juery网页选项卡实现代码
2011/06/13 Javascript
jquery学习笔记 用jquery实现无刷新登录
2011/08/08 Javascript
js 遍历对象的属性的代码
2011/12/29 Javascript
javascript 获取模态窗口的滚动位置代码
2013/08/06 Javascript
将Datatable转化成json发送前台实现思路
2013/09/06 Javascript
jquery parent和parents的区别分析
2013/10/02 Javascript
转换字符串为json对象的方法详解
2013/11/29 Javascript
React学习笔记之列表渲染示例详解
2017/08/22 Javascript
vue引入ueditor及node后台配置详解
2018/01/03 Javascript
浅谈redux以及react-redux简单实现
2018/08/28 Javascript
基于vue、react实现倒计时效果
2019/08/26 Javascript
js在HTML的三种引用方式详解
2020/08/29 Javascript
pymongo实现控制mongodb中数字字段做加法的方法
2015/03/26 Python
Python 性能优化技巧总结
2016/11/01 Python
Python实现多进程的四种方式
2019/02/22 Python
Python+MySQL随机试卷及答案生成程序的示例代码
2021/02/01 Python
一款利用纯css3实现的360度翻转按钮的实例教程
2014/11/05 HTML / CSS
美国新兴城市生活方式零售商:VILLA
2017/12/06 全球购物
澳大利亚鞋仓库:Shoe Warehouse
2019/07/25 全球购物
后勤人员自我评价怎么写
2013/09/19 职场文书
干部培训自我鉴定
2014/01/22 职场文书
毕业生自荐书
2014/02/02 职场文书
班委竞选演讲稿
2014/04/28 职场文书
个人综合鉴定材料
2014/05/23 职场文书
党的群众路线教育实践活动制度建设计划方案
2014/10/31 职场文书
学习党的群众路线教育实践活动心得体会范文
2014/11/03 职场文书
2014年学校体育工作总结
2014/12/08 职场文书
世界地球日活动总结
2015/02/09 职场文书
劳动者解除劳动合同通知书
2015/04/16 职场文书
幼儿园老师工作总结2015
2015/05/22 职场文书
《现实主义勇者的王国再建记》第三弹OST全曲试听片段公开
2022/04/04 日漫
解决 Redis 秒杀超卖场景的高并发
2022/04/12 Redis