微信小程序实现折叠面板


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 相关文章推荐
vs2003 js文件编码问题的解决方法
Mar 20 Javascript
如何将php数组或者对象传递给javascript
Mar 20 Javascript
js实现延迟加载的方法
Jun 24 Javascript
javascript之Boolean类型对象
Jun 07 Javascript
AngularJS轻松实现双击排序的功能
Aug 30 Javascript
Mui使用jquery并且使用点击跳转新窗口的实例
Aug 19 jQuery
初学者AngularJS的环境搭建过程
Oct 27 Javascript
vue.js实现的经典计算器/科学计算器功能示例
Jul 11 Javascript
angular 数据绑定之[]和{{}}的区别
Sep 25 Javascript
彻底弄懂 JavaScript 执行机制
Oct 23 Javascript
Vue和React组件之间的传值方式详解
Jan 31 Javascript
vue中 this.$set的使用详解
Nov 17 Vue.js
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数组内存利用率低和弱类型详细解读
2017/08/10 PHP
浅析PHP中的 inet_pton 网络函数
2019/12/16 PHP
关于使用runtimeStyle属性问题讨论文章
2007/03/08 Javascript
js Flash插入函数免激活代码
2009/03/31 Javascript
Jquery数独游戏解析(一)-页面布局
2010/11/05 Javascript
IE下Ajax缓存问题的快速解决方法(get方式)
2014/01/09 Javascript
浅谈JQuery+ajax+jsonp 跨域访问
2016/06/25 Javascript
Node.js中如何合并两个复杂对象详解
2016/12/31 Javascript
微信小程序 判断手机号的实现代码
2017/04/19 Javascript
vue cli2.0单页面title修改方法
2018/06/07 Javascript
javaScript实现游戏倒计时功能
2018/11/17 Javascript
小程序实现左右来回滚动字幕效果
2018/12/28 Javascript
自定义Vue中的v-module双向绑定的实现
2019/04/17 Javascript
微信小程序引入模块中wxml、wxss、js的方法示例
2019/08/09 Javascript
微信小程序开发(二):页面跳转并传参操作示例
2020/06/01 Javascript
vue+echarts实现动态折线图的方法与注意
2020/09/01 Javascript
解决await在forEach中不起作用的问题
2021/02/25 Javascript
Flask框架WTForm表单用法示例
2018/07/20 Python
Window10下python3.7 安装与卸载教程图解
2019/09/30 Python
Django 拼接两个queryset 或是两个不可以相加的对象实例
2020/03/28 Python
css3 transform及原生js实现鼠标拖动3D立方体旋转
2016/06/20 HTML / CSS
浅谈h5自定义audio(问题及解决)
2016/08/19 HTML / CSS
椰子猫砂:CatSpot
2018/08/27 全球购物
西班牙家用电器和电子产品购物网站:Mi Electro
2019/02/25 全球购物
旅游管理本科生求职信
2013/10/14 职场文书
餐厅经理岗位职责范本
2014/02/17 职场文书
《一本男孩子必读的书》教学反思
2014/02/19 职场文书
买卖合同协议书范本
2014/10/18 职场文书
民主生活会发言材料
2014/10/20 职场文书
2014年科研工作总结
2014/12/03 职场文书
就业意向协议书
2015/01/29 职场文书
归途列车观后感
2015/06/17 职场文书
2019年感恩励志演讲稿(收藏备用)
2019/09/11 职场文书
Go 在 MongoDB 中常用查询与修改的操作
2021/05/07 Golang
浅谈如何提高PHP代码质量之端到端集成测试
2021/05/28 PHP
react 路由Link配置详解
2021/11/11 Javascript