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


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 相关文章推荐
Convert Seconds To Hours
Jun 16 Javascript
jquery自定义属性(类型/属性值)
May 21 Javascript
JavaScript中return false的用法
Mar 12 Javascript
ANGULARJS中使用JQUERY分页控件
Sep 16 Javascript
深入理解jQuery3.0的domManip函数
Sep 01 Javascript
javascript简单进制转换实现方法
Nov 24 Javascript
一个非常好用的文字滚动的案例,鼠标悬浮可暂停[两种方案任选]
Dec 01 Javascript
JS异步加载的三种实现方式
Mar 16 Javascript
详解win7 cmd执行vue不是内部命令的解决方法
Jul 27 Javascript
Angular7.2.7路由使用初体验
Mar 01 Javascript
Vue 前端实现登陆拦截及axios 拦截器的使用
Jul 17 Javascript
vue 实现移动端键盘搜索事件监听
Nov 06 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/06 冲泡冲煮
phpexcel导出excel的颜色和网页中的颜色显示不一致
2012/12/11 PHP
Zend Framework教程之模型Model用法简单实例
2016/03/04 PHP
php爬取天猫和淘宝商品数据
2018/02/23 PHP
thinkPHP5框架实现基于ajax的分页功能示例
2018/06/12 PHP
JavaScript 计算当天是本年本月的第几周
2009/03/22 Javascript
不要使用jQuery触发原生事件的方法
2014/03/03 Javascript
Node.js实现批量去除BOM文件头
2014/12/20 Javascript
js实现Select下拉框具有输入功能的方法
2015/02/06 Javascript
Vue.js创建Calendar日历效果
2016/11/03 Javascript
小程序开发实战:实现九宫格界面的导航的代码实现
2017/01/19 Javascript
JS实现的简单四则运算计算器功能示例
2017/09/27 Javascript
使用 Node.js 开发资讯爬虫流程
2018/01/07 Javascript
Vuex 快速入门(简单易懂)
2018/09/20 Javascript
微信小程序车牌号码模拟键盘输入功能的实现代码
2018/11/11 Javascript
详解小程序如何避免多次点击,重复触发事件
2019/04/08 Javascript
Layui实现数据表格默认全部显示(不要分页)
2019/10/26 Javascript
JQuery常用选择器功能与用法实例分析
2019/12/23 jQuery
多页vue应用的单页面打包方法(内含打包模式的应用)
2020/06/11 Javascript
vue组件实现移动端九宫格转盘抽奖
2020/10/16 Javascript
在react-antd中弹出层form内容传递给父组件的操作
2020/10/24 Javascript
kaggle+mnist实现手写字体识别
2018/07/26 Python
python按键按住不放持续响应的实例代码
2019/07/17 Python
python函数修饰符@的使用方法解析
2019/09/02 Python
python中前缀运算符 *和 **的用法示例详解
2020/05/28 Python
浅谈keras使用中val_acc和acc值不同步的思考
2020/06/18 Python
Python如何设置指定窗口为前台活动窗口
2020/08/12 Python
html5 视频播放解决方案
2016/11/06 HTML / CSS
迪卡侬印度官网:购买所有体育用品
2017/06/24 全球购物
Old Navy加拿大官网:美式休闲服饰品牌
2017/09/26 全球购物
全球精选男装和家居用品:Article
2020/04/13 全球购物
硅酸盐工业控制专业应届生求职信
2013/11/02 职场文书
业务代表的岗位职责
2013/11/16 职场文书
高一数学教学反思
2014/02/07 职场文书
保护环境演讲稿
2014/05/10 职场文书
小学毕业典礼演讲稿
2014/09/09 职场文书