微信小程序实现折叠面板


Posted in Javascript onJanuary 31, 2018

本文实例为大家分享了微信小程序MUI折叠面板的具体代码,供大家参考,具体内容如下

实现原理

通过控制详情部分的显示隐藏,来实现折叠效果,同时切换右侧向下箭头。

效果图

微信小程序实现折叠面板

WXML

<!--pages/accordion/accordion.wxml-->
<view class="tui-accordion-content">
 <view class="tui-menu-list {{isShowFrom1 ? 'tui-shangjiantou' : 'tui-xiajiantou'}}">
  <view bindtap="showFrom" data-param="1"><text>表单</text></view>
  <view class="tui-accordion-from {{isShowFrom1 ? '' : 'tui-hide'}}">
   <view class="tui-menu-list tui-clear">
    <text class="tui-input-name">input</text>
    <input placeholder="普通输入框"></input>
   </view> 
   <view class="tui-menu-list tui-clear">
    <text class="tui-input-name">input</text>
    <input placeholder="普通输入框"></input>
   </view> 
   <view class="tui-menu-list tui-clear">
    <text class="tui-input-name">input</text>
    <input placeholder="普通输入框"></input>
   </view> 
   <view class="tui-menu-list tui-clear" style="text-align:center;padding-top:20rpx;">
    <button size="mini" type="primary">确定</button>
    <button size="mini" style="margin-left:10rpx;">取消</button>
   </view>
  </view>
 </view>
 <view class="tui-menu-list {{isShowFrom2 ? 'tui-shangjiantou' : 'tui-xiajiantou'}}">
  <view bindtap="showFrom" data-param="2"><text>轮播图片</text></view>
  <view class="{{isShowFrom2 ? '' : 'tui-hide'}}">
   <swiper class="tui-swiper" indicator-dots="{{indicatorDots}}" vertical="{{vertical}}"
      autoplay="{{autoplay}}" interval="{{interval}}" duration="{{duration}}"
      indicator-color="#fff" indicator-active-color="red">
    <block wx:for-items="{{banner_url}}">
     <swiper-item>
      <block wx:if="{{item}}">
       <image class="tui-img" src="{{item}}" mode="aspectFill"/>
      </block>
      <block wx:else>
       <image src="../../images/default_pic.png" mode="aspectFill"></image>
      </block>
     </swiper-item>
    </block>
   </swiper>
  </view>
 </view>
 <view class="tui-menu-list {{isShowFrom3 ? 'tui-shangjiantou' : 'tui-xiajiantou'}}">
  <view bindtap="showFrom" data-param="3"><text>文字排版</text></view>
  <view class="{{isShowFrom3 ? '' : 'tui-hide'}}">
   <view class="tui-h1"><text>H1 标签内文字大小及加粗样式</text></view>
   <view class="tui-h2"><text>H2 标签内文字大小及加粗样式</text></view>
   <view class="tui-h3"><text>H3 标签内文字大小及加粗样式</text></view>
   <view class="tui-h4"><text>H4 标签内文字大小及加粗样式</text></view>
   <view class="tui-h5"><text>H5 标签内文字大小及加粗样式</text></view>
   <view class="tui-h6"><text>H6 标签内文字大小及加粗样式</text></view>
   <view class="tui-p"><text>P 标签内文字大小及加粗样式</text></view>
  </view>
 </view>
</view>

WXSS

/* pages/accordion/accordion.wxss */
.tui-accordion-content{
 margin: 10px;
 border: 1px solid #c8c7cc;
 border-radius: 5px;
 overflow: hidden;
}
.tui-accordion-from{padding-left: 0;}
.tui-accordion-from input{
 height: 80rpx;
 line-height: 80rpx;
}

.tui-input-name{
 height: 80rpx;
 float: left;
 width: 200rpx;
}

JS

var banner = require("../../src/js/banner.js");

Page({
 data: {
  isShowFrom1: false,
  isShowFrom2: false,
  isShowFrom3: false,
  indicatorDots: true,
  vertical: false,
  autoplay: true,
  interval: 3000,
  duration: 800,
  banner_url: banner.bannerList
 },
 onLoad: function (options) {

 },
 showFrom(e){
  var param = e.target.dataset.param; 
  this.setData({ 
   isShowFrom1: param == 1 ? (this.data.isShowFrom1 ? false : true) : false,
   isShowFrom2: param == 2 ? (this.data.isShowFrom2 ? false : true) : false,
   isShowFrom3: param == 3 ? (this.data.isShowFrom3 ? false : true) : false
  });
 }
})

总结:

1 每一个折叠面板需要一个布尔值变量来控制;
2 在控制详情隐藏和显示时,要将右侧的箭头对应切换;
3 showFrom函数对每一个布尔值变量的修改三目表达式的优化。

DEMO下载

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
从阿里妈妈发现的几个不错的表单验证函数
Sep 21 Javascript
用js实现的检测浏览器和系统的函数
Apr 09 Javascript
JQuery 国际象棋棋盘 实现代码
Jun 26 Javascript
使用JavaScript库还是自己写代码?
Jan 28 Javascript
用js实现table单元格高宽调整,兼容合并单元格(兼容IE6、7、8、FF)实例
Jun 25 Javascript
javascript的渐进增强与平稳退化浅谈
Nov 12 Javascript
ie8模式下click无反应点击option无反应的解决方法
Oct 11 Javascript
实例详解ECMAScript5中新增的Array方法
Apr 05 Javascript
详解VUE的状态控制与延时加载刷新
Mar 27 Javascript
vue2 router 动态传参,多个参数的实例
Nov 10 Javascript
微信小程序CSS3动画下拉菜单效果
Nov 04 Javascript
JS实现倒序输出的几种常用方法示例
Apr 13 Javascript
Vue中render函数的使用方法
Jan 31 #Javascript
微信小程序图片轮播组件gallery slider使用方法详解
Jan 31 #Javascript
微信小程序scroll-view组件实现滚动动画
Jan 31 #Javascript
微信小程序实现全国机场索引列表
Jan 31 #Javascript
微信小程序radio组件使用详解
Jan 31 #Javascript
微信小程序checkbox组件使用详解
Jan 31 #Javascript
原生JS实现多个小球碰撞反弹效果示例
Jan 31 #Javascript
You might like
php代码优化及php相关问题总结
2006/10/09 PHP
php报表之jpgraph柱状图实例代码
2011/08/22 PHP
php 按指定元素值去除数组元素的实现方法
2011/11/04 PHP
PHP调用Linux命令权限不足问题解决方法
2015/02/07 PHP
利用laravel+ajax实现文件上传功能方法示例
2017/08/13 PHP
PHP在同一域名下两个不同的项目做独立登录机制详解
2017/09/22 PHP
javascript getElementsByTagName
2011/01/31 Javascript
JavaScript中json对象和string对象之间相互转化
2012/12/26 Javascript
formvalidator验证插件中有关ajax验证问题
2013/01/04 Javascript
js之事件冒泡和事件捕获详细介绍
2013/10/28 Javascript
ExtJs纵坐标值重复问题的解决方法
2014/02/27 Javascript
js中的getAttribute方法使用示例
2014/08/01 Javascript
js对象基础实例分析
2015/01/13 Javascript
Javascript基础教程之数据类型转换
2015/01/18 Javascript
node.js Sequelize实现单实例字段或批量自增、自减
2016/12/08 Javascript
基于JavaScript实现无缝滚动效果
2017/07/21 Javascript
angular中的cookie读写方法
2017/08/02 Javascript
原生JS控制多个滚动条同步跟随滚动效果
2017/12/22 Javascript
ndm:NPM的桌面GUI应用程序
2018/10/15 Javascript
vue轻量级框架无法获取到vue对象解决方法
2019/05/12 Javascript
整理 node-sass 安装失败的原因及解决办法(小结)
2020/02/19 Javascript
解决qrcode.js生成二维码时必须定义一个空div的问题
2020/07/09 Javascript
vue根据条件不同显示不同按钮的操作
2020/08/04 Javascript
js制作提示框插件
2020/12/24 Javascript
Python中Collections模块的Counter容器类使用教程
2016/05/31 Python
python中函数传参详解
2016/07/03 Python
Python利用ORM控制MongoDB(MongoEngine)的步骤全纪录
2018/09/13 Python
浅谈Python中os模块及shutil模块的常规操作
2020/04/03 Python
自学python用什么系统好
2020/06/23 Python
Probikekit欧盟:在线公路自行车专家
2019/07/12 全球购物
幼教求职信
2014/03/12 职场文书
督导岗位职责范本
2015/04/10 职场文书
学法用法心得体会(2016推荐篇)
2016/01/21 职场文书
36个正则表达式(开发效率提高80%)
2021/11/17 Javascript
在Python 中将类对象序列化为JSON
2022/04/06 Python
分析SQL窗口函数之取值窗口函数
2022/04/21 Oracle