微信小程序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 相关文章推荐
经典海量jQuery插件 大家可以收藏一下
Feb 07 Javascript
jQuery ajax dataType值为text json探索分享
Sep 23 Javascript
js获取上传文件大小示例代码
Apr 10 Javascript
javascript实现十秒钟后注册按钮可点击的方法
May 13 Javascript
JS实现网页游戏中滑块响应鼠标点击移动效果
Oct 19 Javascript
学习Angularjs分页指令
Jul 01 Javascript
PHP捕捉异常中断的方法
Oct 24 Javascript
jquery实现图片平滑滚动详解
Mar 22 jQuery
axios取消请求的实践记录分享
Sep 26 Javascript
vue中解决微信html5原生ios虚拟键返回不刷新问题
Oct 20 Javascript
原生js实现自定义消息提示框
Nov 19 Javascript
JavaScript构造函数原理及实现流程解析
Nov 19 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中获取变量的变量名的一段代码的bug分析
2011/07/07 PHP
php实现用户在线时间统计详解
2011/10/08 PHP
php类声明和php类使用方法示例分享
2014/03/29 PHP
destoon文章模块调用企业会员资料的方法
2014/08/22 PHP
php获取微信openid方法总结
2019/10/10 PHP
js中将具有数字属性名的对象转换为数组
2011/03/06 Javascript
分享8款优秀的 jQuery 加载动画和进度条插件
2012/10/24 Javascript
Javascript基础知识(三)BOM,DOM总结
2014/09/29 Javascript
js实现一个可以兼容PC端和移动端的div拖动效果实例
2016/12/09 Javascript
jquery拼接ajax 的json和字符串拼接的方法
2017/03/11 Javascript
Vue2.0+ElementUI实现表格翻页的实例
2017/10/23 Javascript
8 个有用的JS技巧(推荐)
2019/07/03 Javascript
微信小程序实现Swiper轮播图效果
2019/11/22 Javascript
小程序使用wxs解决wxml保留2位小数问题
2019/12/13 Javascript
JS前后端实现身份证号验证代码解析
2020/07/23 Javascript
Python编码时应该注意的几个情况
2013/03/04 Python
python实现simhash算法实例
2014/04/25 Python
python数据结构之二叉树的统计与转换实例
2014/04/29 Python
python登陆asp网站页面的实现代码
2015/01/14 Python
Python自动化运维和部署项目工具Fabric使用实例
2016/09/18 Python
用python处理图片实现图像中的像素访问
2018/05/04 Python
Python列表解析配合if else的方法
2018/06/23 Python
Window环境下Scrapy开发环境搭建
2018/11/18 Python
利用 PyCharm 实现本地代码和远端的实时同步功能
2020/03/23 Python
Space NK美国站:英国高端美妆护肤商城
2017/05/22 全球购物
mysql有关权限的表都有哪几个
2015/04/22 面试题
高中军训感想800字
2014/02/23 职场文书
八一建军节感言
2014/02/28 职场文书
导师就业推荐信范文
2014/05/22 职场文书
教师党员岗位承诺书
2014/05/29 职场文书
普通党员对照检查材料
2014/08/28 职场文书
优秀党员自我评价范文
2014/09/15 职场文书
五一劳动节慰问信
2015/02/14 职场文书
2015年医院药剂科工作总结
2015/05/04 职场文书
青春雷锋观后感
2015/06/10 职场文书
利用Python多线程实现图片下载器
2022/03/25 Python