微信小程序之 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 兼容FF的onmouseenter和onmouseleave的代码
Jul 19 Javascript
利用js的Node遍历找到repeater的一个字段实例介绍
Apr 25 Javascript
jquery获取节点名称
Apr 26 Javascript
jQuery实现tab选项卡效果的方法
Jul 08 Javascript
BootStrap glyphicon图标无法显示的解决方法
Sep 06 Javascript
谈谈JavaScript数组常用方法总结
Jan 24 Javascript
详解React 16 中的异常处理
Jul 28 Javascript
使用jQuery实现简单的tab框实例
Aug 22 jQuery
JavaScript编写棋盘覆盖代码详解
Aug 28 Javascript
vue输入节流,避免实时请求接口的实例代码
Oct 30 Javascript
Vue自定义render统一项目组弹框功能
Jun 07 Javascript
Vue实现摇一摇功能(兼容ios13.3以上)
Jan 26 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_xmlhttp 乱码问题解决方法
2009/08/07 PHP
非常实用的php弹出错误警告函数扩展性强
2014/01/17 PHP
php无限极分类递归排序实现方法
2014/11/11 PHP
浅析php创建者模式
2014/11/25 PHP
TopList标签和JavaScript结合两例
2007/08/12 Javascript
使用jquery给input和textarea设定ie中的focus
2008/05/29 Javascript
js每次Title显示不同的名言
2008/09/25 Javascript
javascript 解决表单仍然提交即使监听处理函数返回false
2010/03/14 Javascript
用apply让javascript函数仅执行一次的代码
2010/06/27 Javascript
javascript学习笔记(十八) 获得页面中的元素代码
2012/06/20 Javascript
获取div编辑框,textarea,input text的光标位置 兼容IE,FF和Chrome的方法介绍
2012/11/08 Javascript
JavaScript:Div层拖动效果实例代码
2013/08/06 Javascript
jquery ajax 局部无刷新更新数据的实现案例
2014/02/08 Javascript
EasyUi datagrid 实现表格分页
2015/02/10 Javascript
JS实现控制表格只显示行边框或者只显示列边框的方法
2015/03/31 Javascript
js实现全国省份城市级联下拉菜单效果代码
2015/09/07 Javascript
jQuery给元素添加样式的方法详解
2015/12/30 Javascript
JS实现把鼠标放到链接上出现滚动文字的方法
2016/04/06 Javascript
由浅入深剖析Angular表单验证
2016/07/14 Javascript
JavaScript实现多栏目切换效果
2016/12/12 Javascript
jQuery UI制作选项卡(tabs)
2016/12/13 Javascript
详解Javascript中DOM的范围
2017/02/13 Javascript
使用axios实现上传图片进度条功能
2017/12/21 Javascript
基于Vue实现关键词实时搜索高亮显示关键词
2018/07/21 Javascript
JavaScript使用闭包模仿块级作用域操作示例
2019/01/21 Javascript
浅析webpack-bundle-analyzer在vue-cli3中的使用
2019/10/23 Javascript
python kmeans聚类简单介绍和实现代码
2018/02/23 Python
python实现数独游戏 java简单实现数独游戏
2018/03/30 Python
Python安装pycurl失败的解决方法
2018/10/15 Python
pytorch常见的Tensor类型详解
2020/01/15 Python
python爬虫可以爬什么
2020/06/16 Python
Python接收手机短信的代码整理
2020/08/02 Python
Django CBV模型源码运行流程详解
2020/08/17 Python
英语自荐信范文
2013/12/11 职场文书
领导的自我鉴定
2013/12/28 职场文书
python热力图实现的完整实例
2022/06/25 Python