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


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中void(0)的具体含义解释
Aug 02 Javascript
让firefox支持IE的一些方法的javascript扩展函数代码
Jan 02 Javascript
jquery ready()的几种实现方法小结
Jun 18 Javascript
js控制表单操作的常用代码小结
Aug 15 Javascript
jQuery使用andSelf()来包含之前的选择集
May 19 Javascript
Angularjs基础知识及示例汇总
Jan 22 Javascript
AngularJS基础 ng-show 指令简单示例
Aug 03 Javascript
用JS写的一个Ajax库(实例代码)
Aug 06 Javascript
seajs学习教程之基础篇
Oct 20 Javascript
html+javascript+bootstrap实现层级多选框全层全选和多选功能
Mar 09 Javascript
微信小程序日历效果
Dec 29 Javascript
vue radio单选框,获取当前项(每一项)的value值操作
Sep 10 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新手用的Insert和Update语句构造类
2012/03/31 PHP
PHP实现判断数组是一维、二维或几维的方法
2017/02/06 PHP
php获取给定日期相差天数的方法分析
2017/02/20 PHP
PHP静态延迟绑定和普通静态效率的对比
2017/10/20 PHP
windows 2008r2+php5.6.28环境搭建详细过程
2019/06/18 PHP
php7 参数、整形及字符串处理机制修改实例分析
2020/05/25 PHP
JavaScript 常见对象类创建代码与优缺点分析
2009/12/07 Javascript
分享20款好玩的jQuery游戏
2011/04/17 Javascript
window.showModalDialog参数传递中含有特殊字符的处理方法
2013/06/06 Javascript
对JavaScript中this指针的新理解分享
2015/01/31 Javascript
javascript顺序加载图片的方法
2015/07/18 Javascript
JS简单测试循环运行时间的方法
2016/09/04 Javascript
详解jquery validate实现表单验证 (正则表达式)
2017/01/18 Javascript
js实现做通讯录的索引滑动显示效果和滑动显示锚点效果
2017/02/18 Javascript
jQuery插件HighCharts绘制的基本折线图效果示例【附demo源码下载】
2017/03/07 Javascript
详解Js中的模块化是如何实现的
2017/10/18 Javascript
Angular2的管道Pipe的使用方法
2017/11/07 Javascript
微信小程序倒计时功能实例代码
2018/07/17 Javascript
vue拖拽组件 vuedraggable API options实现盒子之间相互拖拽排序
2019/07/08 Javascript
详解nuxt 微信公众号支付遇到的问题与解决
2019/08/26 Javascript
最全vue的vue-amap使用高德地图插件画多边形范围的示例代码
2020/07/17 Javascript
Python 列表排序方法reverse、sort、sorted详解
2016/01/22 Python
python使用matplotlib绘图时图例显示问题的解决
2017/04/27 Python
详解Python异常处理中的Finally else的功能
2017/12/29 Python
Python中一些深不见底的“坑”
2019/06/12 Python
Django实现文件上传下载
2019/10/06 Python
使用tensorboard可视化loss和acc的实例
2020/01/21 Python
python中温度单位转换的实例方法
2020/12/27 Python
pytorch中index_select()的用法详解
2021/01/06 Python
美国Rue La La闪购网站:奢侈品、中高档品牌限时折扣
2016/10/19 全球购物
俄罗斯便宜的在线服装商店:GroupPrice
2020/04/10 全球购物
英国名牌男装店:Standout
2021/02/17 全球购物
2019大学竞选班长发言稿
2019/06/27 职场文书
JavaScript ES6的函数拓展
2022/01/18 Javascript
十大好看的穿越动漫排名:《瑞克和莫蒂》第一,国漫《有药》在榜
2022/03/18 日漫
Java8 CompletableFuture 异步回调
2022/04/28 Java/Android