微信小程序之 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 回调函数中变量作用域的讨论
Sep 11 Javascript
jQuery 1.5 源码解读 面向中高阶JSER
Apr 05 Javascript
JS制作简单的三级联动
Mar 18 Javascript
Jquery实现鼠标移动放大图片功能实例
Mar 25 Javascript
js实现兼容IE和FF的上下层的移动
May 04 Javascript
使用javaScript动态加载Js文件和Css文件
Oct 24 Javascript
JQuery DIV 动态隐藏和显示的方法
Jun 23 Javascript
jQuery Easyui Datagrid实现单行的上移下移及保存移动的结果
Aug 15 Javascript
d3.js实现立体柱图的方法详解
Apr 28 Javascript
详解swipe使用及竖屏页面滚动方法
Jun 28 Javascript
vuex根据不同的用户权限展示不同的路由列表功能
Sep 20 Javascript
IntelliJ IDEA编辑器配置vue高亮显示
Sep 26 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获取youku视频真实flv文件地址的方法
2014/12/23 PHP
浅谈php中include文件变量作用域
2015/06/18 PHP
PHP数组编码gbk与utf8互相转换的两种方法
2016/09/01 PHP
phpwind放自动注册方法
2006/12/02 Javascript
js中方法重载如何实现?以及函数的参数问题
2013/08/01 Javascript
node.js中的fs.lchmodSync方法使用说明
2014/12/16 Javascript
JavaScript对表格或元素按文本,数字或日期排序的方法
2015/05/26 Javascript
跟我学习javascript创建对象(类)的8种方法
2015/11/20 Javascript
深入浅出ES6之let和const命令
2016/08/25 Javascript
JS实现淡入淡出图片效果的方法分析
2016/12/20 Javascript
js使用highlight.js高亮你的代码
2017/08/18 Javascript
vue初始化动画加载的实例
2018/09/01 Javascript
vue中引入第三方字体文件的方法示例
2018/12/17 Javascript
vue项目查看vue版本及cli版本的实现方式
2020/10/24 Javascript
[00:33]DOTA2上海特级锦标赛 CDEC战队宣传片
2016/03/04 DOTA
[57:53]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#3OG VS VP
2016/03/03 DOTA
Python正则表达式经典入门教程
2017/05/22 Python
Python面向对象编程之继承与多态详解
2018/01/16 Python
linux安装Python3.4.2的操作方法
2018/09/28 Python
Python运维开发之psutil库的使用详解
2018/10/18 Python
Python matplotlib画图与中文设置操作实例分析
2019/04/23 Python
Tensorflow累加的实现案例
2020/02/05 Python
完美解决keras 读取多个hdf5文件进行训练的问题
2020/07/01 Python
澳大利亚潮流尖端的快时尚品牌:Cotton On
2016/09/26 全球购物
请写出 float x 与"零值"比较的 if 语句
2016/01/04 面试题
现代化办公人员工作的自我评价
2013/10/16 职场文书
财务出纳岗位职责
2014/02/03 职场文书
推广普通话演讲稿
2014/05/23 职场文书
破坏寝室公物检讨书
2014/11/17 职场文书
故意伤害人身损害赔偿协议书
2014/11/19 职场文书
2015年乡镇工会工作总结
2015/05/19 职场文书
音乐会主持人开场白
2015/05/28 职场文书
中秋节晚会开场白
2015/05/29 职场文书
同意转租证明
2015/06/24 职场文书
2015年初中教务处工作总结
2015/07/21 职场文书
Python编写冷笑话生成器
2022/04/20 Python