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


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 new Date().valueOf()的作用与时间戳由来详解
Apr 24 Javascript
jquery修改属性值实例代码(设置属性值)
Jan 06 Javascript
jqGrid读取选择的多行的某个属性代码
May 18 Javascript
javascript常用代码段搜集
Dec 04 Javascript
jQuery插件实现静态HTML验证码校验
Nov 06 Javascript
JavaScript模拟鼠标右键菜单效果
Dec 08 Javascript
JQuery实现定时刷新功能代码
May 09 jQuery
vue2.0模拟锚点的实例
Mar 14 Javascript
在 Vue-CLI 中引入 simple-mock实现简易的 API Mock 接口数据模拟
Nov 28 Javascript
基于vue实现一个禅道主页拖拽效果
May 27 Javascript
重置Redux的状态数据的方法实现
Nov 18 Javascript
微信小程序自定义联系人弹窗
May 26 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
Yii核心组件AssetManager原理分析
2014/12/02 PHP
php脚本守护进程原理与实现方法详解
2017/07/20 PHP
推荐自用 Javascript 缩图函数 (onDOMLoaded)……
2007/10/23 Javascript
如何使用jQUery获取选中radio对应的值(一句代码)
2013/06/03 Javascript
jQuery调用AJAX时Get和post公用的乱码解决方法实例说明
2013/06/04 Javascript
理解JAVASCRIPT中hasOwnProperty()的作用
2013/06/05 Javascript
JS实现清除指定cookies的方法
2014/09/20 Javascript
详细解读JavaScript的跨浏览器事件处理
2015/08/12 Javascript
jquery html动态添加的元素绑定事件详解
2016/05/24 Javascript
jQuery文本框得到与失去焦点动态改变样式效果
2016/09/08 Javascript
JavaScript定义全局对象的方法示例
2017/01/12 Javascript
jquery实现自定义图片裁剪功能【推荐】
2017/03/08 Javascript
Angularjs中使用指令绑定点击事件的方法
2017/03/30 Javascript
解决浏览器会自动填充密码的问题
2017/04/28 Javascript
bootstrap轮播图示例代码分享
2017/05/17 Javascript
webpack学习笔记之优化缓存、合并、懒加载
2017/08/24 Javascript
表格展示利器 Bootstrap Table实例代码
2017/09/06 Javascript
js自定义trim函数实现删除两端空格功能
2018/02/09 Javascript
javascript中toFixed()四舍五入使用方法详解
2018/09/28 Javascript
Vue源码分析之Vue实例初始化详解
2019/08/25 Javascript
element-ui树形控件后台返回的数据+生成组织树的工具类
2020/03/05 Javascript
微信小程序使用GoEasy实现websocket实时通讯
2020/05/19 Javascript
解决VUE项目使用Element-ui 下拉组件的验证失效问题
2020/11/07 Javascript
Python生成随机MAC地址
2015/03/10 Python
Python求导数的方法
2015/05/09 Python
python实现简单的文字识别
2018/11/27 Python
Python实现计算对象的内存大小示例
2019/07/10 Python
Python使用Opencv实现图像特征检测与匹配的方法
2019/10/30 Python
Python实现非正太分布的异常值检测方式
2019/12/09 Python
店长岗位职责
2013/11/21 职场文书
2015欢度元旦标语口号
2014/12/09 职场文书
竞聘演讲报告:基本写作有哪些?附开头范文
2019/10/16 职场文书
【HBU】数据库第四周 单表查询
2021/04/05 SQL Server
微信告警的zabbix监控系统 监控整个NGINX集群
2022/04/18 Servers
CSS中float高度塌陷问题的四种解决方案
2022/04/18 HTML / CSS
Rust中的Struct使用示例详解
2022/08/14 Javascript