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


Posted in Javascript onJanuary 23, 2019

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

实现的目标MUI的off canvas效果

点击列表 —- 右侧展示页面不动,左侧导航滑动 —- 点击右侧遮罩层或者左侧选项 —- 左侧还原,右侧去掉遮罩层

实现方案2:左右分上下两层,左侧滑动,右侧不动

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

WXML

<view class="page">
 <view class="page-top {{open ? 'page-top-show' : ''}}">
  <view class="nav-list" wx:for-items="{{nav_list}}" bindtap="open_list" data-title="{{item}}">
   <text>{{item}}</text>
  </view>
 </view>
 <view class="page-bottom">
  <image class="off-nav-list" bindtap="off_canvas" src="../../images/btn.png"></image>
  <view class="page-bottom-content">
   <text>{{text}}</text>
  </view>
  <view class="page-mask {{open ? '' : 'page-mask-hide'}}" bindtap="off_canvas"></view>
 </view>
</view>

WXSS

page,.page {
 height: 100%;
 font-family: 'PingFang SC', 'Helvetica Neue', Helvetica, 'Droid Sans Fallback', 'Microsoft Yahei', sans-serif;
}
/*左侧导航 */
.page-top{
 position: fixed;
 width: 75%;
 height: 100%;
 top: 0;
 left: 0;
 background-color: rgb(0, 68, 97);
 transform: rotate(0deg) scale(1) translate(-100%,0%);
 -webkit-transform: rotate(0deg) scale(1) translate(-100%,0%);
 transition: all 0.4s ease;
 z-index: 998;
}
.page-top-show{
 transform: rotate(0deg) scale(1) translate(0%,0%);
 -webkit-transform: rotate(0deg) scale(1) translate(0%,0%);
}
.nav-list{
 padding: 30rpx 0 30rpx 40rpx;
 color:#fff;
}
/*右侧展示 */
.page-bottom{
 height: 100%;
 background-color: rgb(57, 125, 230);
 position: relative;
}
.off-nav-list{
 position: fixed;
 width: 60rpx;
 height: 50rpx;
 top: 20rpx;
 left:20rpx;
}
.page-bottom-content{
 padding:100rpx 20rpx 30rpx;
 color: #fff;
}
.page-mask{
 width: 100%;
 height: 100%;
 background-color:rgba(0,0,0,0.5);
 position: absolute;
 top: 0;
 left: 0;
 z-index: 10;
}
.page-mask-hide{
 display: none;
}

JS

var app = getApp();
var data = require('../../utils/data.js');
Page({
 /**
  * 页面的初始数据
  */
 data: {
  text: 'ES6学习之路',
  nav_list: ['ES6学习之路', 'CSS特效', 'VUE实战','微信小程序'],
  open: false
 },
 //列表的操作函数
 open_list: function(opts){
  this.setData({ text: opts.currentTarget.dataset.title,open: false});
 },
 //左侧导航的开关函数
 off_canvas: function(){
  this.data.open ? this.setData({open: false}) :this.setData({open: true});
 }
})

总结:

1. 代码简化:off_canvas函数简化代码,采用三目表达式,简单切清晰;

2. 渲染:注意对data对象中属性进行赋值时,要采用this.setData()方法,否则属性改变不会重新渲染(eg:this.data.text = opts.currentTarget.dataset.title;)这样text的值改变,页面不会重新渲染text;

3. 代码简化:this.data.open ? this.setData({open: false}) :this.setData({open: true});简化为this.setData({ open: this.data.open ? false : true});

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

Javascript 相关文章推荐
建议大家看下JavaScript重要知识更新
Jul 08 Javascript
js用图作提交按钮或超连接
Mar 26 Javascript
Jquery遍历节点的方法小集
Jan 22 Javascript
将HTML格式的String转化为HTMLElement的实现方法
Aug 07 Javascript
JS如何判断是否为ie浏览器的方法(包括IE10、IE11在内)
Dec 13 Javascript
通过正则表达式获取url中参数的简单实现
Jun 07 Javascript
深入理解jQuery3.0的domManip函数
Sep 01 Javascript
微信小程序  生命周期详解
Oct 27 Javascript
Angular路由简单学习
Dec 26 Javascript
js实现淡入淡出轮播切换功能
Jan 13 Javascript
详解vue项目首页加载速度优化
Oct 18 Javascript
深入浅析Vue中的slots/scoped slots
Apr 03 Javascript
微信小程序MUI侧滑导航菜单示例(Popup弹出式,左侧不动,右侧滑动)
Jan 23 #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
You might like
php下尝试使用GraphicsMagick的缩略图功能
2011/01/01 PHP
php中取得文件的后缀名?
2012/02/20 PHP
WordPress的文章自动添加关键词及关键词的SEO优化
2016/03/01 PHP
javascript实现的鼠标链接提示效果生成器代码
2007/06/28 Javascript
IE与Firefox下javascript getyear年份的兼容性写法
2007/12/20 Javascript
jquery 自定义容器下雨效果可将下雨图标改为其他
2014/04/23 Javascript
JavaScript结合AJAX_stream实现流式显示
2015/01/08 Javascript
浅谈jQuery.easyui的datebox格式化时间
2015/06/25 Javascript
JS区分浏览器页面是刷新还是关闭
2016/04/17 Javascript
JS闭包与延迟求值用法示例
2016/12/22 Javascript
微信小程序 首页制作简单实例
2017/04/07 Javascript
详解nodejs异步I/O和事件循环
2017/06/07 NodeJs
js实现数组和对象的深浅拷贝
2017/09/30 Javascript
web前端vue之CSS过渡效果示例
2018/01/10 Javascript
QRCode.js二维码生成并能长按识别
2018/10/16 Javascript
微信小程序网络层封装的实现(promise, 登录锁)
2019/05/08 Javascript
微信小程序 腾讯地图SDK 获取当前地址实现解析
2019/08/12 Javascript
JS实现canvas简单小画板功能
2020/06/23 Javascript
跟老齐学Python之使用Python查询更新数据库
2014/11/25 Python
解决python中画图时x,y轴名称出现中文乱码的问题
2019/01/29 Python
python字典排序的方法
2019/10/12 Python
python模块导入的方法
2019/10/24 Python
Jupyter notebook 启动闪退问题的解决
2020/04/13 Python
python 实现PIL模块在图片画线写字
2020/05/16 Python
python UDF 实现对csv批量md5加密操作
2021/01/01 Python
Expedia英国:全球最大的在线旅游公司
2017/09/07 全球购物
计算机应用专业应届毕业生中文求职信范文
2013/11/29 职场文书
高二英语教学反思
2014/01/19 职场文书
法学专业自我鉴定
2014/02/05 职场文书
入职担保书范文
2014/05/21 职场文书
教师求职信怎么写
2015/03/20 职场文书
2015年读书月活动总结
2015/03/26 职场文书
2016中秋晚会开幕词
2016/03/03 职场文书
CSS filter 有什么神奇用途
2021/05/25 HTML / CSS
Mysql数据库按时间点恢复实战记录
2021/06/30 MySQL
SQL Server代理:理解SQL代理错误日志处理方法
2021/06/30 SQL Server