微信小程序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 相关文章推荐
JS应用之禁止抓屏、复制、打印
Feb 21 Javascript
JavaScript 对象、函数和继承
Jul 07 Javascript
基于jquery的一个简单的脚本验证插件
Apr 05 Javascript
FireFox下XML对象转化成字符串的解决方法
Dec 09 Javascript
jquery中animate动画积累的解决方法
Oct 05 Javascript
onkeyup,onkeydown和onkeypress的区别介绍
Oct 21 Javascript
js生成的验证码的实现与技术分析
Sep 17 Javascript
JavaScript驾驭网页-获取网页元素
Mar 24 Javascript
微信小程序中的canvas 文字断行和省略号显示功能的处理方法
Nov 14 Javascript
Node.js爬虫如何获取天气和每日问候详解
Aug 26 Javascript
原生JS实现相邻月份日历
Oct 13 Javascript
vue基于Teleport实现Modal组件
May 31 Vue.js
微信小程序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实现分页的一个示例
2006/10/09 PHP
php下几个常用的去空、分组、调试数组函数
2009/02/22 PHP
PHP应用JSON技巧讲解
2013/02/03 PHP
php面向对象编程self和static的区别
2016/05/08 PHP
Yii2基于Ajax自动获取表单数据的方法
2016/08/10 PHP
微信支付的开发流程详解
2016/09/13 PHP
使用PHP免费发送定时短信的实例
2016/10/24 PHP
yii2-GridView在开发中常用的功能及技巧总结
2017/01/07 PHP
PHP chr()函数讲解
2019/02/11 PHP
基于jquery &amp; json的省市区联动代码
2012/06/26 Javascript
JS创建自定义表格具体实现
2014/02/11 Javascript
JS 打印界面的CSS居中代码适用所有浏览器
2014/03/19 Javascript
JavaScript将一个数组插入到另一个数组的方法
2015/03/19 Javascript
JS对象是否拥有某属性如何判断
2017/02/03 Javascript
JS实现DIV高度自适应窗口示例
2017/02/16 Javascript
Angular.js去除页面中显示的空行方法示例
2017/03/30 Javascript
vue实现密码显示隐藏切换功能
2018/02/23 Javascript
Python Tkinter基础控件用法
2014/09/03 Python
python解决js文件utf-8编码乱码问题(推荐)
2018/05/02 Python
浅谈Django中的数据库模型类-models.py(一对一的关系)
2018/05/30 Python
python3.x 将byte转成字符串的方法
2018/07/17 Python
python 实现A*算法的示例代码
2018/08/13 Python
python自动化生成IOS的图标
2018/11/13 Python
Python快速转换numpy数组中Nan和Inf的方法实例说明
2019/02/21 Python
Flask模板引擎之Jinja2语法介绍
2019/06/26 Python
python3.6 如何将list存入txt后再读出list的方法
2019/07/02 Python
浅析pandas 数据结构中的DataFrame
2019/10/12 Python
python字典通过值反查键的实现(简洁写法)
2020/09/30 Python
Python爬虫过程解析之多线程获取小米应用商店数据
2020/11/14 Python
使用Html5多媒体实现微信语音功能
2019/07/26 HTML / CSS
韩国商务邀请函
2014/01/14 职场文书
计算机应届毕业生自荐信范文
2014/02/23 职场文书
2014年建筑工作总结
2014/11/26 职场文书
赢在中国观后感
2015/06/02 职场文书
分享15个Webpack实用的插件!!!
2021/03/31 Javascript
MySQL8.0.18配置多主一从
2021/06/21 MySQL