zoukankan      html  css  js  c++  java
  • 微信小程序----折叠面板(MUI折叠面板)

    DEMO下载

    实现原理

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

    效果图

    折叠面板效果图

    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函数对每一个布尔值变量的修改三目表达式的优化。

    其他

    我的博客,欢迎交流!

    我的CSDN博客,欢迎交流!

    微信小程序专栏

    前端笔记专栏

    微信小程序实现部分高德地图功能的DEMO下载

    微信小程序实现MUI的部分效果的DEMO下载

    微信小程序实现MUI的GIT项目地址

    微信小程序实例列表

    前端笔记列表

    游戏列表

  • 相关阅读:
    MySQL语句进行分组后的含有字段拼接方法
    架构基础
    自动化测试框架比较
    分布式系统中的概念--第一篇 一致性协议、一致性模型、拜占庭问题、租约
    如果两个对象具有相同的哈希码,但是不相等的,它们可以在HashMap中同时存在吗?
    分布式系统常用思想和技术总结(转)
    常用的Hash算法
    Sonar + Jacoco,强悍的UT, IT 双覆盖率统计(转)
    AWK处理日志入门(转)
    内存管理
  • 原文地址:https://www.cnblogs.com/linewman/p/9918495.html
Copyright © 2011-2022 走看看