微信小程序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 相关文章推荐
js 覆盖和重载 函数
Sep 25 Javascript
javascript快速排序算法详解
Sep 17 Javascript
jQuery.holdReady()方法用法实例
Dec 27 Javascript
学习JavaScript设计模式(封装)
Nov 26 Javascript
JavaScript事件学习小结(一)事件流
Jun 09 Javascript
详解js中的apply与call的用法
Jul 30 Javascript
BetterScroll 在移动端滚动场景的应用
Sep 18 Javascript
Vue.js 2.5新特性介绍(推荐)
Oct 24 Javascript
Vue结合Video.js播放m3u8视频流的方法示例
May 04 Javascript
JavaScript面向对象程序设计创建对象的方法分析
Aug 13 Javascript
elementUI中Table表格问题的解决方法
Dec 04 Javascript
这15个Vue指令,让你的项目开发爽到爆
Oct 11 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
mac下Apache + MySql + PHP搭建网站开发环境
2014/06/02 PHP
PHP实现对png图像进行缩放的方法(支持透明背景)
2015/07/15 PHP
作为程序员必知的16个最佳PHP库
2015/12/09 PHP
thinkphp5框架结合mysql实现微信登录和自定义分享链接与图文功能示例
2019/08/13 PHP
js获取url参数的使用扩展实例
2007/12/29 Javascript
extjs 04_grid 单击事件新发现
2012/11/27 Javascript
textarea 控制输入字符字节数(示例代码)
2013/12/27 Javascript
js关于字符长度限制的问题示例探讨
2014/01/24 Javascript
jquery退出each循环的写法
2014/02/26 Javascript
jQuery数据检索中根据关键字快速定位GridView指定行的实现方法
2016/06/08 Javascript
Google 地图事件实例讲解
2016/08/06 Javascript
vue页面跳转后返回原页面初始位置方法
2018/02/11 Javascript
基于vue循环列表时点击跳转页面的方法
2018/08/31 Javascript
vue自定义底部导航栏Tabbar的实现代码
2018/09/03 Javascript
Vue中 v-if/v-show/插值表达式导致闪现的原因及解决办法
2018/10/12 Javascript
vue history 模式打包部署在域名的二级目录的配置指南
2019/07/02 Javascript
jquery+css3实现的经典弹出层效果示例
2020/05/16 jQuery
Python中super关键字用法实例分析
2015/05/28 Python
浅谈pyhton学习中出现的各种问题(新手必看)
2017/05/17 Python
初学python的操作难点总结(新手必看篇)
2017/08/03 Python
python多进程下实现日志记录按时间分割
2019/07/22 Python
基于Python获取城市近7天天气预报
2019/11/26 Python
使用python实现数组、链表、队列、栈的方法
2019/12/20 Python
浅谈图像处理中掩膜(mask)的意义
2020/02/19 Python
Python 中由 yield 实现异步操作
2020/05/04 Python
什么是python的列表推导式
2020/05/26 Python
英国花园、DIY、电器和家居用品商店:Robert Dyas
2019/03/18 全球购物
Andrew Marc官网:设计师外套的领先制造商
2019/10/30 全球购物
关于环保的标语
2014/06/13 职场文书
初中优秀学生评语
2014/12/29 职场文书
关于拾金不昧的感谢信
2015/01/21 职场文书
领导新年致辞2016
2015/07/29 职场文书
当你焦虑迷茫时,请读读这6句话
2019/07/24 职场文书
MySQL的InnoDB存储引擎的数据页结构详解
2022/03/03 MySQL
Redis分布式锁的7种实现
2022/04/01 Redis
Ruby处理YAML和json数据
2022/04/18 Ruby