微信小程序之 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 相关文章推荐
jQuery EasyUI 开源插件套装 完全替代ExtJS
Mar 24 Javascript
html页面显示年月日时分秒和星期几的两种方式
Aug 20 Javascript
JS交换变量的方法
Jan 21 Javascript
jquery实现图片上传之前预览的方法
Jul 11 Javascript
js实现的二级横向菜单条实例
Aug 22 Javascript
Vue2路由动画效果的实现代码
Jul 10 Javascript
Angular实现响应式表单
Aug 04 Javascript
zTree树形菜单交互选项卡效果的实现方法
Dec 25 Javascript
jquery的$().each和$.each的区别
Jan 18 jQuery
简单了解Ajax表单序列化的实现方法
Jun 14 Javascript
原生javascript实现类似vue的数据绑定功能示例【观察者模式】
Feb 24 Javascript
如何基于jQuery实现五角星评分
Sep 02 jQuery
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
PHP中使用glob函数实现一句话删除某个目录下的所有文件
2014/07/22 PHP
Docker搭建自己的PHP开发环境
2018/02/24 PHP
PHP排序算法之归并排序(Merging Sort)实例详解
2018/04/21 PHP
使用jQuery的ajax功能实现的RSS Reader 代码
2009/09/03 Javascript
javascipt基础内容--需要注意的细节
2013/04/10 Javascript
详解JavaScript UTC时间转换方法
2016/01/07 Javascript
jQuery实现指定区域外单击关闭指定层的方法【经典】
2016/06/22 Javascript
js判断是否为空和typeof的用法(详解)
2016/10/07 Javascript
学习使用Bootstrap栅格系统
2017/05/11 Javascript
Vue路由钩子之afterEach beforeEach的区别详解
2018/07/15 Javascript
react中使用css的7中方式(最全总结)
2019/02/11 Javascript
一篇文章介绍redux、react-redux、redux-saga总结
2019/05/23 Javascript
简单了解JavaScript中的执行上下文和堆栈
2019/06/24 Javascript
vue cli3 调用百度翻译API翻译页面的实现示例
2019/09/13 Javascript
结合axios对项目中的api请求进行封装操作
2020/09/21 Javascript
python将多个文本文件合并为一个文本的代码(便于搜索)
2011/03/13 Python
python 获取本机ip地址的两个方法
2013/02/25 Python
Python内置函数OCT详解
2016/11/09 Python
对dataframe进行列相加,行相加的实例
2018/06/08 Python
python性能测量工具cProfile使用解析
2019/09/26 Python
Django {{ MEDIA_URL }}无法显示图片的解决方式
2020/04/07 Python
python 已知三条边求三角形的角度案例
2020/04/12 Python
python让函数不返回结果的方法
2020/06/22 Python
Python LMDB库的使用示例
2021/02/14 Python
HTML5 canvas绘制的玫瑰花效果
2014/05/29 HTML / CSS
HTML5+CSS3:3D展示商品信息示例
2017/01/03 HTML / CSS
亚洲颇具影响力的男性在线购物零售商:His
2019/11/24 全球购物
新加坡第一的杂货零售商:NTUC FairPrice
2020/12/05 全球购物
捐助贫困学生倡议书
2014/05/16 职场文书
事业单位人员的自我评价范文
2014/09/21 职场文书
个人诉讼委托书范本
2014/10/17 职场文书
孕妇病假条怎么写
2015/08/17 职场文书
2016年百日安全生产活动总结
2016/04/06 职场文书
生命的关键成分来自太空?陨石说是的
2022/04/29 数码科技
在SQL Server中使用 Try Catch 处理异常的示例详解
2022/07/15 SQL Server