微信小程序MUI侧滑导航菜单示例(Popup弹出式,左侧不动,右侧滑动)


Posted in Javascript onJanuary 23, 2019

本文实例讲述了微信小程序MUI侧滑导航菜单。分享给大家供大家参考,具体如下:

实现的目标—-YDUI的Popup组件

点击列表图标—-左侧的菜单栏显示—-点击关闭按钮或者右侧的遮罩层—-左侧菜单栏关闭

实现方案1:左侧菜单和右侧展示页面分为上下两层

微信小程序MUI侧滑导航菜单示例(Popup弹出式,左侧不动,右侧滑动)

wxml

<view class="page">
  <----下层左侧导航--->
  <view class="page-bottom">
    <view class="page-content">
      <view bindtap="open_list" wx:for-items="{{nav_list}}" class="page-list">
        <text>{{item}}</text>
      </view>
    </view>
  </view>
  <----上层右侧展示页面--->
  <view class="page-top {{open ? 'page-state' : ''}}">
  <----上层右侧展示页面遮罩层--->
   <view class="page-mask {{open ? '' : 'page-mask-show'}}" bindtap="offCanvas"></view>
   <----列表按钮--->
    <image class="left-nav" bindtap="offCanvas" src="../../images/btn.png"></image>
     <----轮播代码,可以不要--->
     <scroll-view scroll-y="true" style="height:200px" class="page-body" bindscrolltolower="loadMore">
     <view class="swiper">
      <swiper class="swiper-box" indicator-dots="{{indicatorDots}}" vertical="{{vertical}}"
          autoplay="{{autoplay}}" interval="{{interval}}" duration="{{duration}}"
          indicator-color="#fff" indicator-active-color="red">
        <block wx:for-items="{{banner_url}}" wx:key="item.id">
          <navigator url="../blogList/blogList">
           <swiper-item>
            <block wx:if="{{item}}">
             <image class="imgw" src="{{item.url}}" mode="aspectFill"/>
            </block>
            <block wx:else>
             <image src="../../images/default_pic.png" mode="aspectFill"></image>
            </block>
           </swiper-item>
          </navigator>
        </block>
      </swiper>
     </view>
    </scroll-view>
  </view>
</view>

wxss

page,.page {
 height: 100%;
 font-family: 'PingFang SC', 'Helvetica Neue', Helvetica, 'Droid Sans Fallback', 'Microsoft Yahei', sans-serif;
}
/*左侧导航列表 */
.page-bottom{
 height: 100%;
 width: 75%;
 position: fixed;
 background-color: rgb(0, 68, 97);
 z-index: 0;
}
.page-list{
 color: white;
 padding: 30rpx 0 30rpx 40rpx;
}
/*右侧展示层 */
.page-top{
 position: relative;
 top: 0;
 left:0;
 width: 750rpx;
 height: 100%;
 background-color: rgb(57, 125, 230);
 z-index: 0;
 transition: All 0.4s ease;
 -webkit-transition: All 0.4s ease;
}
.page-state{
 transform: rotate(0deg) scale(1) translate(75%,0%);
 -webkit-transform: rotate(0deg) scale(1) translate(75%,0%);
}
.imgw{width:100%;}
/*右侧列表按钮 */
.page-top .left-nav{
 position: fixed;
 width: 68rpx;
 height: 38rpx;
 left: 20rpx;
 bottom: 20rpx;
}
/*右侧遮罩层 */
.page-mask{
 position: absolute;
 width: 100%;
 height: 100%;
 top: 0;
 left: 0;
 background-color: rgba(0,0,0,0.5);
 z-index: 998;
}
.page-mask-show{
 display: none;
}

js

var app = getApp();
var data = require('../../utils/data.js');
Page({
 /**
  * 页面的初始数据
  */
 data: {
  banner_url: data.bannerList(),
  nav_list: ['ES6学习之路', 'CSS特效', 'VUE实战','微信小程序'],
  open: false,
  indicatorDots: true,//是否显示面板指示点
  autoplay: true,//是否开启自动切换
  interval: 3000,//自动切换时间间隔
  duration: 500//滑动动画时长
 },
 //列表的操作函数
 open_list: function(){
  //此处进行操作
  this.setData({
   open: false
  });
 },
 //左侧导航的开关函数
 offCanvas: function(){
  if(this.data.open){
   this.setData({
    open: false
   });
  }else{
   this.setData({
    open: true
   });
  }
 }
})

总结:

1. 右侧展示的动画,我们可以直接通过class将其统一定义完整,然后通过切换class来改变动画的控制—-减少了js对dom中style的操作。
2. 在左侧菜单导航操作的最后记得open=false,使页面还原。

DEMO源码

点击此处本站下载

希望本文所述对大家微信小程序开发有所帮助。

Javascript 相关文章推荐
javascript onmouseout 解决办法
Jul 17 Javascript
javascript 窗口加载蒙板 内嵌网页内容
Nov 19 Javascript
实现51Map地图接口(示例代码)
Nov 22 Javascript
js中浮点型运算BUG的解决方法说明
Jan 06 Javascript
原生JS封装ajax 传json,str,excel文件上传提交表单(推荐)
Jun 21 Javascript
Angular6 用户自定义标签开发的实现方法
Jan 08 Javascript
JQuery判断radio单选框是否选中并获取值的方法
Jan 17 jQuery
layui表格 返回的数据状态异常的解决方法
Sep 10 Javascript
如何通过JS实现日历简单算法
Oct 14 Javascript
js实现日历
Nov 07 Javascript
vue+iview实现文件上传
Nov 17 Vue.js
javascript canvas实现雨滴效果
Jun 09 Javascript
vue车牌号校验和银行校验实战
Jan 23 #Javascript
微信小程序map组件结合高德地图API实现wx.chooseLocation功能示例
Jan 23 #Javascript
微信小程序使用map组件实现检索(定位位置)周边的POI功能示例
Jan 23 #Javascript
使用javascript做时间倒数读秒功能的实例
Jan 23 #Javascript
大转盘抽奖小程序版 转盘抽奖网页版
Apr 16 #Javascript
javascript json字符串到json对象转义问题
Jan 22 #Javascript
使用JavaScript保存文本文件到本地的两种方法
Jan 22 #Javascript
You might like
PHP 金额数字转换成英文
2010/05/06 PHP
Laravel路由研究之domain解决多域名问题的方法示例
2019/04/04 PHP
jquery实现类似淘宝星星评分功能有截图
2014/09/15 Javascript
谈谈JavaScript类型系统之Math
2016/01/06 Javascript
实例讲解jquery与json的结合
2016/01/07 Javascript
完善的jquery处理机制
2016/02/21 Javascript
BootStrap入门教程(二)之固定的内置样式
2016/09/19 Javascript
Bootstrap基本组件学习笔记之分页(12)
2016/12/08 Javascript
通过sails和阿里大于实现短信验证
2017/01/04 Javascript
JS+html5 canvas实现的简单绘制折线图效果示例
2017/03/13 Javascript
JavaScript 完成注册页面表单校验的实例
2017/08/19 Javascript
Angular中封装fancyBox(图片预览)遇到问题小结
2017/09/01 Javascript
微信小程序使用map组件实现解析经纬度功能示例
2019/01/22 Javascript
在layui tab控件中载入外部html页面的方法
2019/09/04 Javascript
js实现蒙版效果
2020/01/11 Javascript
Postman参数化实现过程及原理解析
2020/08/13 Javascript
Python EOL while scanning string literal问题解决方法
2020/09/18 Python
Python语言实现百度语音识别API的使用实例
2017/12/13 Python
win10 64bit下python NLTK安装教程
2018/09/19 Python
python selenium登录豆瓣网过程解析
2019/08/10 Python
Python 字符串、列表、元组的截取与切片操作示例
2019/09/17 Python
python3中celery异步框架简单使用+守护进程方式启动
2021/01/20 Python
恒华伟业笔试面试题
2015/02/26 面试题
opencv实现图像几何变换
2021/03/24 Python
毕业生就业自荐信
2013/12/04 职场文书
护士毕业自我鉴定
2014/02/07 职场文书
如何写一封打动人心的求职信
2014/02/17 职场文书
大三学习计划书范文
2014/05/02 职场文书
关于工作时间玩手机的检讨书
2014/09/18 职场文书
管理失职检讨书范文
2015/05/05 职场文书
运动会100米广播稿
2015/08/19 职场文书
幼儿园教师暑期培训心得体会
2016/01/09 职场文书
某药房的新员工入职告知书!
2019/07/15 职场文书
详解Django的MVT设计模式
2021/04/29 Python
Pytorch 统计模型参数量的操作 param.numel()
2021/05/13 Python
pandas 实现将NaN转换为None
2021/05/14 Python