微信小程序之 catalog 切换实现解析


Posted in Javascript onSeptember 12, 2019

组件名称:catalog

组件属性:catalogData,type:String

组件描述:这是一个子组件,数据从父组件中传递

效果图:

微信小程序之 catalog 切换实现解析

catalog 目录为多个,使用 scroll-view 容器。但是在当前组件中,只写每个 catalog 数据展示并实现 catalog 切换效果,这样会保证当前组件的最小粒度。

分析当前组件可能用到的属性为:组件名称,切换状态,未选中状态,切换点击方法。

<block wx:for="{{catalogData}}" wx:key="id" wx:for-item="item" class="item">
  <view class="scroll-view-item catalog-title {{curIndex == index ? 'catalog-active' : 'catalog-normal'}}" data-index="{{index}}" catchtap="goIndex">{{item.catalog}}</view>
</block>

curIndex 为点击当前 catalog 时获取的 index

index 为 catalogData 这个数组默认的 index, 也就是 data-index 的值

goIndex 为点击当前 catalog 的方法,通过点击获取到 curIndex 的值

通过判断当前 curIndex 是否与数组中的 index 是否相等,如果相等,则给当前 catalog 添加选中的样式 catalog-active,否则添加 catalog-normal。

更新默认 curIndex 的默认值

Component({
 /**
  * 组件的属性列表
  */
 properties: {
  catalogData:{
   type: Array,
  }
 },
 /**
  * 组件的初始数据
  */
 data: {
   curIndex:0
 },  
  /**
   * 组件的方法列表
   */
  methods: {
    goIndex(event) {
      let nextIndex = event.currentTarget.dataset.index;
      this.setData({
        curIndex: nextIndex
      })      
      console.log(this.data.curIndex + '=' + nextIndex);
    },
  }
})

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript中关于break,continue的特殊用法与介绍
May 24 Javascript
实现51Map地图接口(示例代码)
Nov 22 Javascript
jquery根据属性和index来查找属性值并操作
Jul 25 Javascript
JS实现的生成随机数的4个函数分享
Feb 11 Javascript
jQuery实现Div拖动+键盘控制综合效果的方法
Mar 10 Javascript
在 Angular2 中实现自定义校验指令(确认密码)的方法
Jan 23 Javascript
在knockoutjs 上自己实现的flux(实例讲解)
Dec 18 Javascript
JavaScript基于数组实现的栈与队列操作示例
Dec 22 Javascript
JavaScript中常用的简洁高级技巧总结
Mar 10 Javascript
JavaScript惰性载入函数实例分析
Mar 27 Javascript
Node绑定全局TraceID的实现方法
Nov 14 Javascript
ant design实现圈选功能
Dec 17 Javascript
layui实现checkbox的目录树tree的例子
Sep 12 #Javascript
layui表单提交到后台自动封装到实体类的方法
Sep 12 #Javascript
使用flow来规范javascript的变量类型
Sep 12 #Javascript
LayUI数据接口返回实体封装的例子
Sep 12 #Javascript
浅谈layui 数据表格前后台传值的问题
Sep 12 #Javascript
layui框架与SSM前后台交互的方法
Sep 12 #Javascript
layui问题之渲染数据表格时,仅出现10条数据的解决方法
Sep 12 #Javascript
You might like
php录入页面中动态从数据库中提取数据的实现
2006/10/09 PHP
Zend Framework连接Mysql数据库实例分析
2016/03/19 PHP
php while循环控制的简单实例
2016/05/30 PHP
Thinkphp实现短信验证注册功能
2016/10/18 PHP
php 数据结构之链表队列
2017/10/17 PHP
删除重复数据的算法
2006/11/23 Javascript
js 异步处理进度条
2010/04/01 Javascript
Three.js源码阅读笔记(基础的核心Core对象)
2012/12/27 Javascript
jQuery调用RESTful WCF示例代码(GET方法/POST方法)
2014/01/26 Javascript
jquery实现的导航固定效果
2014/04/28 Javascript
通过JS来动态的修改url,实现对url的增删查改
2014/09/01 Javascript
开启Javascript中apply、call、bind的用法之旅模式
2015/10/28 Javascript
小心!AngularJS结合RequireJS做文件合并压缩的那些坑
2016/01/09 Javascript
利用JQuery写一个简单的异步分页插件
2016/03/07 Javascript
JS导出PDF插件的方法(支持中文、图片使用路径)
2016/07/12 Javascript
vue loadmore组件上拉加载更多功能示例代码
2017/07/19 Javascript
layui点击弹框页面 表单请求的方法
2019/09/21 Javascript
vue3.0中使用postcss-pxtorem的具体方法
2019/11/20 Javascript
vue 动态表单开发方法案例详解
2019/12/02 Javascript
js实现数字跳动到指定数字
2020/08/25 Javascript
[10:49]2014国际邀请赛 叨叨刀塔第二期为真正的电竞喝彩
2014/07/21 DOTA
python模拟登陆阿里妈妈生成商品推广链接
2014/04/03 Python
详解python时间模块中的datetime模块
2016/01/13 Python
python属于解释语言吗
2020/06/11 Python
python相对企业语言优势在哪
2020/06/12 Python
TensorFlow中如何确定张量的形状实例
2020/06/23 Python
详解python第三方库的安装、PyInstaller库、random库
2021/03/03 Python
canvas像素画板的实现代码
2018/11/21 HTML / CSS
SteelSeries赛睿官网:游戏外设和配件的领先制造商(耳机、键盘、鼠标和鼠标垫)
2018/06/17 全球购物
什么是Linux虚拟文件系统VFS
2015/08/25 面试题
物流管理应届生求职信
2013/11/07 职场文书
后备干部考察材料
2014/02/12 职场文书
2014企业年终工作总结
2014/12/23 职场文书
《月光曲》教学反思
2016/02/16 职场文书
Java生成读取条形码和二维码的简单示例
2021/07/09 Java/Android
Python+腾讯云服务器实现每日自动健康打卡
2021/12/06 Python