微信小程序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获取几种URL地址的方法小结
Feb 26 Javascript
JavaScript打印网页指定区域的例子
May 03 Javascript
jQuery中siblings()方法用法实例
Jan 08 Javascript
完美实现仿QQ空间评论回复特效
May 06 Javascript
在easyUI开发中,出现jquery.easyui.min.js函数库问题的解决办法
Sep 11 Javascript
纯js实现瀑布流布局及ajax动态新增数据
Apr 07 Javascript
Javascript中的对象和原型(二)
Aug 12 Javascript
第一次接触Bootstrap框架
Oct 24 Javascript
利用js定义一个导航条菜单
Mar 14 Javascript
Vue input控件通过value绑定动态属性及修饰符的方法
May 03 Javascript
浅析JS抽象工厂模式
Dec 14 Javascript
element-ui 表格实现单元格可编辑的示例
Feb 26 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中一个控制字符串输出的函数
2006/10/09 PHP
PHP检测移动设备类mobile detection使用实例
2014/04/14 PHP
PHP数组相关函数汇总
2015/03/24 PHP
php通过baihui网API实现读取word文档并展示
2015/06/22 PHP
java微信开发之上传下载多媒体文件
2016/06/24 PHP
地址栏上的一段语句,改变页面的风格。(教程)
2008/04/02 Javascript
javascript新手语法小结
2008/06/15 Javascript
javascript模拟订火车票和退票示例
2014/04/24 Javascript
使用documentElement正确取得当前可见区域的大小
2014/07/25 Javascript
JavaScript实现重置表单(reset)的方法
2015/04/02 Javascript
JS实现数组去重方法总结(六种方法)
2017/07/14 Javascript
Vue.js项目部署到服务器的详细步骤
2017/07/17 Javascript
vue2 全局变量的设置方法
2018/03/09 Javascript
搭建vue开发环境
2018/07/19 Javascript
使用mixins实现elementUI表单全局验证的解决方法
2019/04/02 Javascript
微信小程序获取地理位置及经纬度授权代码实例
2019/09/18 Javascript
Js视频播放器插件Video.js使用方法详解
2020/02/04 Javascript
详解Vue串联过滤器的使用场景
2020/04/30 Javascript
js实现自定义滚动条的示例
2020/10/27 Javascript
[57:28]2018DOTA2亚洲邀请赛 4.6 淘汰赛 TNC vs Liquid 第一场
2018/04/10 DOTA
python解析文件示例
2014/01/23 Python
对numpy.append()里的axis的用法详解
2018/06/28 Python
对pandas将dataframe中某列按照条件赋值的实例讲解
2018/11/29 Python
Python 中 function(#) (X)格式 和 (#)在Python3.*中的注意事项
2018/11/30 Python
详解pandas的外部数据导入与常用方法
2019/05/01 Python
用sqlalchemy构建Django连接池的实例
2019/08/29 Python
全网首秀之Pycharm十大实用技巧(推荐)
2020/04/27 Python
来自美国主售篮球鞋的零售商店:KICKSUSA
2017/11/28 全球购物
Public Desire美国/加拿大:全球性的在线鞋类品牌
2018/12/17 全球购物
时尚圣经:The Fashion Bible
2019/03/03 全球购物
如何用Python来进行查询和替换一个文本字符串
2014/01/02 面试题
体育教师自荐信范文
2013/12/16 职场文书
基层党建工作宣传标语
2014/06/24 职场文书
学雷锋志愿者活动总结
2014/06/27 职场文书
基层党员学习党的群众路线教育实践活动心得体会
2014/11/04 职场文书
综合测评自我评价
2015/03/06 职场文书