微信小程序实现折叠面板


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 相关文章推荐
eval与window.eval的差别分析
Mar 17 Javascript
jQuery Deferred和Promise创建响应式应用程序详细介绍
Mar 05 Javascript
js获取时间并实现字符串和时间戳之间的转换
Jan 05 Javascript
jQuery实现文本展开收缩特效
Jun 03 Javascript
AngularJS学习笔记之基本指令(init、repeat)
Jun 16 Javascript
jQuery常用且重要方法汇总
Jul 13 Javascript
JS面向对象(3)之Object类,静态属性,闭包,私有属性, call和apply的使用,继承的三种实现方法
Feb 25 Javascript
javascript插件开发的一些感想和心得
Feb 28 Javascript
jQuery实现多张图片上传预览(不经过后端处理)
Apr 29 jQuery
动态创建Angular组件实现popup弹窗功能
Sep 15 Javascript
基于Vue框架vux组件库实现上拉刷新功能
Nov 28 Javascript
js this 绑定机制深入详解
Apr 30 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 zlib压缩和解压缩swf文件的代码
2008/12/30 PHP
php 表单数据的获取代码
2009/03/10 PHP
php把大写命名转换成下划线分割命名
2015/04/27 PHP
Yii获取当前url和域名的方法
2015/06/08 PHP
PHP匿名函数(闭包函数)详解
2019/03/22 PHP
PHP fopen中文文件名乱码问题解决方案
2020/10/28 PHP
JavaScript和JQuery实用代码片段(一)
2010/04/07 Javascript
js/jquery获取浏览器窗口可视区域高度和宽度以及滚动条高度实现代码
2012/12/17 Javascript
解析使用js判断只能输入数字、字母等验证的方法(总结)
2013/05/14 Javascript
javascript强大的日期函数代码分享
2013/09/04 Javascript
jquery选择器之内容过滤选择器详解
2014/01/27 Javascript
jquery easyui中treegrid用法的简单实例
2014/02/18 Javascript
js和jquery中循环的退出和继续下一个循环
2014/09/03 Javascript
理解jQuery stop()方法
2014/11/21 Javascript
jQuery实现的动态伸缩导航菜单实例
2015/05/07 Javascript
移动端H5开发 Turn.js实现很棒的翻书效果
2016/06/20 Javascript
HTML页面定时跳转方法解析(2种任选)
2016/12/22 Javascript
jQuery遍历节点方法汇总(推荐)
2017/05/13 jQuery
详解ES6之用let声明变量以及let loop机制
2017/07/15 Javascript
微信小程序引用iconfont图标的方法
2018/10/22 Javascript
[01:10]DOTA2 Supermajor:英雄,由我们见证
2018/05/14 DOTA
python timestamp和datetime之间转换详解
2017/12/11 Python
ubuntu上安装python的实例方法
2019/09/30 Python
python如何遍历指定路径下所有文件(按按照时间区间检索)
2020/09/14 Python
如何利用Python matplotlib绘制雷达图
2020/12/21 Python
详解Python Celery和RabbitMQ实战教程
2021/01/20 Python
用CSS3实现Win8风格的方格导航菜单效果
2013/04/10 HTML / CSS
Agoda西班牙:全球特价酒店预订
2017/06/03 全球购物
农场厂长岗位职责
2013/12/28 职场文书
单位授权委托书范本
2014/09/26 职场文书
个人查摆问题自查报告
2014/10/16 职场文书
实名检举信范文
2015/03/02 职场文书
2015年街道办事处工作总结
2015/05/22 职场文书
2016应届毕业生就业指导课心得体会
2016/01/15 职场文书
Python实现学生管理系统并生成exe可执行文件详解流程
2022/01/22 Python
Linux磁盘管理方法介绍
2022/06/01 Servers