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


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中的关联数组分析
Apr 09 Javascript
jquery实现弹出窗口效果的实例代码
Nov 28 Javascript
javascript操纵OGNL标签示例代码
Jun 16 Javascript
javascript实现checkbox全选的代码
Apr 30 Javascript
简述AngularJS的控制器的使用
Jun 16 Javascript
Angular2中select用法之设置默认值与事件详解
May 07 Javascript
javascript中mouseenter与mouseover的异同
Jun 06 Javascript
微信小程序实现预览图片功能
Oct 22 Javascript
js实现图片实时时钟
Jan 15 Javascript
JavaScript find()方法及返回数据实例
Apr 30 Javascript
JavaScript Tab菜单实现过程解析
May 13 Javascript
vue实现在线学生录入系统
May 30 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
解析PHP中DIRECTORY_SEPARATOR,PATH_SEPARATOR两个常量的作用
2013/06/21 PHP
PHP如何实现Unicode和Utf-8编码相互转换
2015/07/29 PHP
Ajax中的JSON格式与php传输过程全面解析
2017/11/14 PHP
php插入mysql数据返回id的方法
2018/05/31 PHP
优化JavaScript脚本的性能的几个注意事项
2006/12/22 Javascript
脚本吧 - 幻宇工作室用到js,超强推荐expand.js
2006/12/23 Javascript
javascript 一个函数对同一元素的多个事件响应
2009/07/25 Javascript
获取网站跟路径的javascript代码(站点及虚拟目录)
2009/10/20 Javascript
高亮显示web页表格行的javascript代码
2010/11/19 Javascript
js使用DOM设置单选按钮、复选框及下拉菜单的方法
2015/01/20 Javascript
js实现滑动触屏事件监听的方法
2015/05/05 Javascript
jQuery.prop() 使用详解
2015/07/19 Javascript
jquery判断密码强度的验证代码
2020/04/22 Javascript
js实现ctrl+v粘贴上传图片(兼容chrome、firefox、ie11)
2016/03/09 Javascript
touch.js 拖动、缩放、旋转 (鼠标手势)功能代码
2017/02/04 Javascript
利用纯JS实现像素逐渐显示的方法示例
2017/08/14 Javascript
js判断输入框不能为空格或null值的实现方法
2018/03/02 Javascript
浅谈vue-cli 3.0.x 初体验
2018/04/11 Javascript
深入解析ES6中的promise
2018/11/08 Javascript
小程序从手动埋点到自动埋点的实现方法
2019/01/24 Javascript
微信小程序 冒泡事件原理解析
2019/09/27 Javascript
jQuery/JS监听input输入框值变化实例
2019/10/17 jQuery
Bootstrap简单实用的表单验证插件BootstrapValidator用法实例详解
2020/03/29 Javascript
[02:22]完美世界DOTA2联赛PWL S3 集锦第一期
2020/12/15 DOTA
[01:16:13]DOTA2-DPC中国联赛 正赛 SAG vs Dragon BO3 第一场 2月22日
2021/03/11 DOTA
[01:04:09]DOTA2-DPC中国联赛 正赛 iG vs VG BO3 第二场 2月2日
2021/03/11 DOTA
linux下安装easy_install的方法
2013/02/10 Python
python基于右递归解决八皇后问题的方法
2015/05/25 Python
利用python生成一个导出数据库的bat脚本文件的方法
2016/12/30 Python
倩碧澳大利亚官网:Clinique澳大利亚
2019/07/22 全球购物
员工工作表扬信范文
2014/01/13 职场文书
庆祝教师节活动方案
2014/01/31 职场文书
《观舞记》教学反思
2014/04/16 职场文书
诚信贷款承诺书
2014/05/30 职场文书
四风对照检查材料范文
2014/09/27 职场文书
2014年乡镇工会工作总结
2014/12/02 职场文书