微信小程序之 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 相关文章推荐
httpclient模拟登陆具体实现(使用js设置cookie)
Dec 11 Javascript
jQuery模拟点击A标记示例参考
Apr 17 Javascript
JavaScript实现身份证验证代码
Feb 17 Javascript
快速掌握Node.js模块封装及使用
Mar 21 Javascript
jQuery实现的鼠标经过时变宽的效果(附demo源码)
Apr 28 Javascript
分享jQuery网页元素拖拽插件
Dec 01 Javascript
JS实现星星评分功能实例代码(两种方法)
Jun 09 Javascript
Vue cli3 库模式搭建组件库并发布到 npm的流程
Oct 12 Javascript
如何在Vue.js中实现标签页组件详解
Jan 02 Javascript
JS前端知识点 运算符优先级,URL编码与解码,String,Math,arguments操作整理总结
Jun 27 Javascript
使用Vue实现调用接口加载页面初始数据
Oct 28 Javascript
JS实现碰撞检测效果
Mar 12 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 array_push()数组函数:将一个或多个单元压入数组的末尾(入栈)
2011/07/12 PHP
php检索或者复制远程文件的方法
2015/03/13 PHP
简单PHP会话(session)说明介绍
2016/08/21 PHP
PHP文件系统管理(实例讲解)
2017/09/19 PHP
ASP.NET jQuery 实例11 通过使用jQuery validation插件简单实现用户登录页面验证功能
2012/02/03 Javascript
TinyMCE提交AjaxForm获取不到数据的解决方法
2015/03/05 Javascript
使用Jquery实现每日签到功能
2015/04/03 Javascript
AngularJS中的指令全面解析(必看)
2016/05/20 Javascript
iscroll.js滚动加载实例详解
2017/07/18 Javascript
使用FormData实现上传多个文件
2018/12/04 Javascript
移动端手指操控左右滑动的菜单
2019/09/08 Javascript
axios实现简单文件上传功能
2019/09/25 Javascript
微信小程序云函数添加数据到数据库的方法
2020/03/04 Javascript
ES6中的Javascript解构的实现
2020/10/30 Javascript
微信小程序绘制半圆(弧形)进度条
2020/11/18 Javascript
[11:01]2014DOTA2西雅图邀请赛 冷冷带你探秘威斯汀
2014/07/08 DOTA
[50:15]VP vs Mineski 2018国际邀请赛淘汰赛BO3 第二场 8.22
2018/08/23 DOTA
python实现用于测试网站访问速率的方法
2015/05/26 Python
Python实现向服务器请求压缩数据及解压缩数据的方法示例
2017/06/09 Python
Flask框架通过Flask_login实现用户登录功能示例
2018/07/17 Python
python函数参数(必须参数、可变参数、关键字参数)
2019/08/16 Python
ubuntu 18.04 安装opencv3.4.5的教程(图解)
2019/11/04 Python
Python爬虫简单运用爬取代理IP的实现
2020/12/01 Python
详解css3中的伪类before和after常见用法
2020/11/17 HTML / CSS
Trina Turk官网:美国时装和泳装品牌
2018/06/10 全球购物
小区门卫工作职责
2013/12/14 职场文书
亲子读书活动方案
2014/02/22 职场文书
2014年医学生毕业自我鉴定
2014/03/26 职场文书
物流专业自荐信
2014/05/23 职场文书
培训研修方案
2014/06/06 职场文书
个人简历自荐信
2014/06/26 职场文书
2014年学校食堂工作总结
2014/11/25 职场文书
致青春观后感
2015/06/09 职场文书
公务员学习中国梦心得体会
2016/01/05 职场文书
2016中秋节月饼促销广告语
2016/01/28 职场文书
Fluentd搭建日志收集服务
2022/09/23 Servers