微信小程序之 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 相关文章推荐
ExtJS 入门
Oct 29 Javascript
利用js的Node遍历找到repeater的一个字段实例介绍
Apr 25 Javascript
js字符串完全替换函数分享
Dec 03 Javascript
jquery图形密码实现方法
Mar 11 Javascript
JavaScript实现控制打开文件另存为对话框的方法
Apr 17 Javascript
javascript中闭包概念与用法深入理解
Dec 15 Javascript
jQuery中弹出iframe内嵌页面元素到父页面并全屏化的实例代码
Dec 27 Javascript
vue mint-ui tabbar变组件使用
May 04 Javascript
优雅的将ElementUI表格变身成树形表格的方法步骤
Apr 11 Javascript
vue获取时间戳转换为日期格式代码实例
Apr 17 Javascript
vue监听dom大小改变案例
Jul 29 Javascript
vue+elementui 实现新增和修改共用一个弹框的完整代码
Jun 08 Vue.js
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&amp;java(一)
2006/10/09 PHP
WINXP下apache+php4+mysql
2006/11/25 PHP
PHP全概率运算函数(优化版) Webgame开发必备
2011/07/04 PHP
set_include_path和get_include_path使用及注意事项
2013/02/02 PHP
php实现自定义中奖项数和概率的抽奖函数示例
2017/05/26 PHP
php设计模式之中介者模式分析【星际争霸游戏案例】
2020/03/23 PHP
JS鼠标事件大全 推荐收藏
2011/11/01 Javascript
jquery实现点击消失的代码
2014/03/03 Javascript
js日期联动示例
2014/05/02 Javascript
JavaScript设计模式之工厂方法模式介绍
2014/12/28 Javascript
Javascript设计模式理论与编程实战之简单工厂模式
2015/11/03 Javascript
浅谈JavaScript 浏览器对象
2016/06/03 Javascript
angularjs封装bootstrap时间插件datetimepicker
2016/06/20 Javascript
JavaScript中正则表达式判断匹配规则及常用方法
2017/08/03 Javascript
JavaScript数据结构与算法之检索算法实例分析【顺序查找、最大最小值、自组织查询】
2019/02/22 Javascript
使用JS判断页面是首次被加载还是刷新
2019/05/26 Javascript
超详细的5个Shell脚本实例分享(值得收藏)
2019/08/15 Javascript
微信小程序表单验证插件WxValidate的二次封装功能(终极版)
2019/09/03 Javascript
微信小程序 导入图标实现过程详解
2019/10/11 Javascript
vue-cli+iview项目打包上线之后图标不显示问题及解决方法
2019/10/16 Javascript
Vue.js组件通信之自定义事件详解
2019/10/19 Javascript
python的pdb调试命令的命令整理及实例
2017/07/12 Python
Python实现抢购IPhone手机
2018/02/07 Python
Flask框架信号用法实例分析
2018/07/24 Python
python实现简单图片物体标注工具
2019/03/18 Python
Python中itertools的用法详解
2020/02/07 Python
python 贪心算法的实现
2020/09/18 Python
PyQT5速成教程之Qt Designer介绍与入门
2020/11/02 Python
香港优质食材和美酒专门店:FoodWise
2017/09/01 全球购物
台湾屈臣氏网路商店:Watsons台湾
2020/12/29 全球购物
员工廉洁自律承诺书
2014/05/26 职场文书
2014年十八届四中全会思想汇报范文
2014/10/17 职场文书
三提三创主题教育活动查摆整改措施
2014/10/25 职场文书
学校艾滋病宣传活动总结
2015/05/09 职场文书
钱学森电影观后感
2015/06/04 职场文书
深入理解Pytorch微调torchvision模型
2021/11/11 Python