小程序实现列表展开收起效果


Posted in Javascript onJuly 29, 2020

本文实例为大家分享了小程序实现列表展开收起的具体代码,供大家参考,具体内容如下

效果:

小程序实现列表展开收起效果

原理:利用AppData值 + 显示隐藏的样式,进行展开收起。

wxml:

<view bindtap="toChange" data-show='isShow'>{{isShow?'收起':'展开'}}<view>
<view class="{{isShow?'db' : 'dn'}}">这是你要收起展开的内容</view>

js:

Page({\
  data: {
  isShow: true, //true为展开
  },
  /*
  * isShow做取反操作
  * */
  toChange (e) {
  let that = this;
  let name = e.currentTarget.dataset.show;
  let param = {};
  param[name] = !that.data[name];
  that.setData({
   ...param
  })
  },
 })

wxss:

.db{
 display:block;
}
.dn{
 display:none;
}

这个原理其实够正常的收起展开了,但是碰上列表,还需要调整一下,那么问题来了,如何让小程序列表中展示明细?

列表效果:

小程序实现列表展开收起效果

想法:利用AppData值 + 显示隐藏的样式,进行展开收起。还要加上“数据污染”。

js:

page({
data:{
 list:[{id:1},{id:2}],
},
toShowItem(e) {
 let that = this;
 let id = e.currentTarget.dataset.id,
  show = e.currentTarget.dataset.show;
 that.data.list.forEach(function (v) {
  if (v.id == id) {
  v.show = !show;//这里污染原始数组数据
  }
 })
 //利用污染,对列表设置值
 this.setData({
  list: this.data.list
 })
 }
})

wxml:

<view wx:for="{{list}}" wx:key="{{index}}" wx:for-item="item">
 <view bindtap="toShowItem" data-id='{{item.id}}' data-show='{{item.show}}'>
  <text>{{item.show?'收起明细':'明细'}}</text>
 </view>
 <view class="{{item.show ? 'db' : 'dn'}}">
  这里是你展开收起的内容
 </view>
</view>

这里只是分享一个想法,要是想用直接粘贴,是达不到效果图的效果的,毕竟不是所有的样式都放上来了。

为大家推荐现在关注度比较高的微信小程序教程一篇:《微信小程序开发教程》小编为大家精心整理的,希望喜欢。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
鼠标滚轮改变图片大小的示例代码
Nov 20 Javascript
JS实现方向键切换输入框焦点的方法
Aug 19 Javascript
Spring mvc 接收json对象
Dec 10 Javascript
辨析JavaScript中的Undefined类型与null类型
May 26 Javascript
jQuery如何封装输入框插件
Aug 19 Javascript
JS获取中文拼音首字母并通过拼音首字母快速查找页面内对应中文内容的方法【附demo源码】
Aug 19 Javascript
微信小程序开发之Tabbar实例详解
Jan 09 Javascript
JS简单实现数组去重的方法分析
Oct 14 Javascript
详解各版本React路由的跳转的方法
May 10 Javascript
koa+jwt实现token验证与刷新功能
May 30 Javascript
JS实现简单打字测试
Jun 24 Javascript
理解Proxy及使用Proxy实现vue数据双向绑定操作
Jul 18 Javascript
jquery实现简单自动轮播图效果
Jul 29 #jQuery
解决vue-photo-preview 异步图片放大失效的问题
Jul 29 #Javascript
vue 组件间的通信之子组件向父组件传值的方式
Jul 29 #Javascript
vue-preview动态获取图片宽高并增加旋转功能的实现
Jul 29 #Javascript
vuex管理状态仓库使用详解
Jul 29 #Javascript
解决vue项目获取dom元素宽高总是不准确问题
Jul 29 #Javascript
如何使用three.js 制作一个三维的推箱子游戏
Jul 29 #Javascript
You might like
yii2实现Ueditor百度编辑器的示例代码
2018/11/02 PHP
5 cool javascript apps
2007/03/24 Javascript
asp.net和asp下ACCESS的参数化查询
2008/06/11 Javascript
InnerHtml和InnerText的区别分析
2009/03/13 Javascript
javascript textarea光标定位方法(兼容IE和FF)
2011/03/12 Javascript
图片上传判断及预览脚本的效果实例
2013/08/07 Javascript
Jquery的Tabs内容轮换效果实现代码,几行搞定
2014/02/12 Javascript
angularjs中回车键触发某一事件的方法
2017/04/24 Javascript
JS判断数组那点事
2017/10/10 Javascript
深入理解Vue 组件之间传值
2018/08/16 Javascript
JavaScript实现淘宝京东6位数字支付密码效果
2018/08/18 Javascript
vue.js实现会动的简历(包含底部导航功能,编辑功能)
2019/04/08 Javascript
ES6中字符串的使用方法扩展
2019/06/04 Javascript
微信小程序 调用微信授权窗口相关问题解决
2019/07/25 Javascript
vue-cli+iview项目打包上线之后图标不显示问题及解决方法
2019/10/16 Javascript
python实现图片批量剪切示例
2014/03/25 Python
python 根据正则表达式提取指定的内容实例详解
2016/12/04 Python
解决pycharm 误删掉项目文件的处理方法
2018/10/22 Python
tf.concat中axis的含义与使用详解
2020/02/07 Python
django使用F方法更新一个对象多个对象字段的实现
2020/03/28 Python
Python偏函数实现原理及应用
2020/11/20 Python
CSS3中的元素过渡属性transition示例详解
2016/11/30 HTML / CSS
CSS3线性渐变简单实现以及该属性在浏览器中的不同
2012/12/12 HTML / CSS
纯css3制作网站后台管理面板
2014/12/30 HTML / CSS
物理教育专业毕业生推荐信
2013/11/03 职场文书
物业总经理岗位职责
2014/02/28 职场文书
高中军训感言600字
2014/03/11 职场文书
幼儿园儿童节活动主持词+串词大全
2014/03/21 职场文书
毕业自我鉴定书
2014/03/24 职场文书
2015年收银员个人工作总结
2015/04/01 职场文书
《西游记》读后感(3篇)
2019/09/20 职场文书
详解Laravel框架的依赖注入功能
2021/05/27 PHP
图解排序算法之希尔排序Java实现
2021/06/26 Java/Android
MySQL系列之六 用户与授权
2021/07/02 MySQL
Python 多线程处理任务实例
2021/11/07 Python
Python按顺序遍历并读取文件夹中文件
2022/04/29 Python