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


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 相关文章推荐
javascript 模拟JQuery的Ready方法实现并出现的问题
Dec 06 Javascript
jquery下异步提交表单 异步跨域提交表单
Nov 17 Javascript
js实现绿白相间竖向网页百叶窗动画切换效果
Mar 02 Javascript
javascript中的3种继承实现方法
Jan 27 Javascript
JavaScript的模块化开发框架Sea.js上手指南
May 12 Javascript
动态加载css方法实现和深入解析
Jan 18 Javascript
jQuery动态生成不规则表格(前后端)
Feb 21 Javascript
JavaScript实现图片拖曳效果
Sep 08 Javascript
元素全屏的设置与监听实例
Nov 28 Javascript
jQuery位置选择器用法实例分析
Jun 28 jQuery
使用vuex较为优雅的实现一个购物车功能的示例代码
Dec 09 Javascript
uniapp微信小程序实现一个页面多个倒计时
Nov 01 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
东方红 - 来复式再生机的修复
2021/03/02 无线电
海河写的 Discuz论坛帖子调用js的php代码
2007/08/23 PHP
thinkphp验证码的实现(form、ajax实现验证)
2016/07/28 PHP
浅谈PHP接入(第三方登录)QQ登录 OAuth2.0 过程中遇到的坑
2017/10/13 PHP
PHP常用字符串函数小结(推荐)
2018/08/05 PHP
解决PHP curl或file_get_contents下载图片损坏或无法打开的问题
2019/10/11 PHP
PHP实现腾讯短网址生成api接口实例
2020/12/08 PHP
javascript事件模型代码
2007/07/01 Javascript
JS类的封装及实现代码
2009/12/02 Javascript
jQuery替换字符串(实例代码)
2013/11/13 Javascript
javascript实现Email邮件显示与删除功能
2015/11/21 Javascript
谷歌Chrome浏览器扩展程序开发小记
2016/01/06 Javascript
jQuery 如何给Carousel插件添加新的功能
2016/04/18 Javascript
JavaScript中获取HTML元素值的三种方法
2016/06/20 Javascript
jQuery Easyui使用(一)之可折叠面板的布局手风琴菜单
2016/08/17 Javascript
JS创建对象的写法示例
2016/11/04 Javascript
jQuery Easyui加载表格出错时在表格中间显示自定义的提示内容
2016/12/08 Javascript
详解ES6中的三种异步解决方案
2018/06/28 Javascript
微信小程序实现复选框效果
2018/12/28 Javascript
JS温故而知新之变量提升和时间死区
2019/01/27 Javascript
layui数据表格跨行自动合并的例子
2019/09/02 Javascript
使用 js 简单的实现 bind、call 、aplly代码实例
2019/09/07 Javascript
JS回调函数简单易懂的入门实例分析
2019/09/29 Javascript
p5.js实现简单货车运动动画
2019/10/23 Javascript
Python中的面向对象编程详解(上)
2015/04/13 Python
python实现名片管理系统
2018/11/29 Python
浅谈PySpark SQL 相关知识介绍
2019/06/14 Python
python中np是做什么的
2020/07/21 Python
用OpenCV进行年龄和性别检测的实现示例
2021/01/29 Python
html5使用canvas实现图片下载功能的示例代码
2017/08/26 HTML / CSS
波兰最大的儿童服装连锁店之一:5.10.15.
2018/02/11 全球购物
英国助听器购物网站:Hearing Direct
2018/08/21 全球购物
应届生找工作求职信
2014/06/24 职场文书
保险公司客户经理岗位职责
2015/04/09 职场文书
《你在为谁工作》心得体会(共8篇)
2016/01/20 职场文书
PyTorch 实现L2正则化以及Dropout的操作
2021/05/27 Python