微信小程序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的一种模块模式
Sep 08 Javascript
读jQuery之十一 添加事件核心方法
Jul 31 Javascript
推荐30个新鲜出炉的精美 jQuery 效果
Mar 26 Javascript
javascript模拟select,jselect的方法实现
Nov 08 Javascript
js中AppendChild与insertBefore的用法详细解析
Dec 16 Javascript
浅谈jquery回调函数callback的使用
Jan 30 Javascript
jQuery实现的在线答题功能
Apr 12 Javascript
关于原生js中bind函数的简单实现
Aug 10 Javascript
Vue 短信验证码组件开发详解
Feb 14 Javascript
bootstrap为水平排列的表单和内联表单设置可选的图标
Feb 15 Javascript
js实现返回顶部效果
Mar 10 Javascript
es6函数name属性功能与用法实例分析
Apr 18 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与paypal整合方法
2010/11/28 PHP
php和mysql中uft-8中文编码乱码的几种解决办法
2012/04/19 PHP
解析 thinkphp 框架中的部分方法
2017/05/07 PHP
Nginx实现反向代理
2017/09/20 Servers
javascript oop开发滑动(slide)菜单控件
2010/08/25 Javascript
判断客户浏览器是否支持cookie的示例代码
2013/12/23 Javascript
javascript原生和jquery库实现iframe自适应高度和宽度
2014/07/18 Javascript
javascript实现单击和双击并存的方法
2014/12/13 Javascript
javascript弹出拖动窗口
2015/08/11 Javascript
jQuery实现鼠标经过时出现隐藏层文字链接的方法
2015/10/12 Javascript
基于JavaScript实现 网页切出 网站title变化代码
2016/04/03 Javascript
CodeMirror js代码加亮使用总结
2017/03/25 Javascript
详解从买域名到使用pm2部署node.js项目全过程
2018/03/07 Javascript
微信小程序实现简易table表格
2020/06/19 Javascript
微信小程序实现工作时间段选择
2019/02/15 Javascript
Electron-vue开发的客户端支付收款工具的实现
2019/05/24 Javascript
js针对图片加载失败的处理方法分析
2019/08/24 Javascript
vue element自定义表单验证请求后端接口验证
2019/12/11 Javascript
python连接MySQL、MongoDB、Redis、memcache等数据库的方法
2013/11/15 Python
以Flask为例讲解Python的框架的使用方法
2015/04/29 Python
Python中将dataframe转换为字典的实例
2018/04/13 Python
Python读取视频的两种方法(imageio和cv2)
2018/04/15 Python
详解python3安装pillow后报错没有pillow模块以及没有PIL模块问题解决
2019/04/17 Python
python机器学习包mlxtend的安装和配置详解
2019/08/21 Python
TFRecord格式存储数据与队列读取实例
2020/01/21 Python
tensorflow将图片保存为tfrecord和tfrecord的读取方式
2020/02/17 Python
mac 上配置Pycharm连接远程服务器并实现使用远程服务器Python解释器的方法
2020/03/19 Python
H5仿微信界面教程(一)
2017/07/05 HTML / CSS
英文版区域经理求职信
2013/10/23 职场文书
服务行业演讲稿
2014/09/02 职场文书
苏州园林导游词
2015/02/03 职场文书
婚姻出轨保证书
2015/05/08 职场文书
诚实守信主题班会
2015/08/13 职场文书
postgresql无序uuid性能测试及对数据库的影响
2021/06/11 PostgreSQL
分布式Redis Cluster集群搭建与Redis基本用法
2022/02/24 Redis
python 实现图片特效处理
2022/04/03 Python