微信小程序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中继承的一些示例方法与属性参考
Aug 07 Javascript
jquery Moblie入门—hello world的示例代码学习
Jan 08 Javascript
jquery自定义下拉列表示例
Apr 25 Javascript
JavaScript判断手机号运营商是移动、联通、电信还是其他(代码简单)
Sep 25 Javascript
BootStrap智能表单实战系列(十一)级联下拉的支持
Jun 13 Javascript
用JS写的一个Ajax库(实例代码)
Aug 06 Javascript
Js得到radiobuttonlist选中值的两种方法(推荐)
Aug 25 Javascript
使用javaScript实现鼠标拖拽事件
Apr 03 Javascript
JS实现点击按钮随机生成可拖动的不同颜色块示例
Jan 30 Javascript
JavaScript箭头函数中的this详解
Jun 19 Javascript
解决mui框架中switch开关通过js控制开或者关状态时小圆点不动的问题
Sep 03 Javascript
深入浅析vue中cross-env的使用
Sep 12 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
朋友网关于QQ相关的PHP代码(研究QQ的绝佳资料)
2015/01/26 PHP
php判断一个数组是否为有序的方法
2015/03/27 PHP
php爬取天猫和淘宝商品数据
2018/02/23 PHP
PHP+Ajax实现的检测用户名功能简单示例
2019/02/12 PHP
slice函数的用法 之不错的应用
2006/12/29 Javascript
不懂JavaScript应该怎样学
2008/04/16 Javascript
JavaScript入门教程(7) History历史对象
2009/01/31 Javascript
Extjs中DisplayField的日期或者数字格式化扩展
2010/09/03 Javascript
js面向对象 多种创建对象方法小结
2012/05/21 Javascript
Jquery中&quot;$(document).ready(function(){ })&quot;函数的使用详解
2013/12/30 Javascript
eclipse导入jquery包后报错的解决方法
2014/02/17 Javascript
JS实现进入页面时渐变背景色的方法
2015/02/25 Javascript
js小数运算出现多位小数如何解决
2015/10/08 Javascript
JQuery日期插件datepicker的使用方法
2016/03/03 Javascript
javascript自执行函数
2017/02/10 Javascript
详谈$.data()的用法和作用
2017/02/13 Javascript
微信小程序五星评分效果实现代码
2017/04/06 Javascript
微信小程序实现点击文字页面跳转功能【附源码下载】
2017/12/12 Javascript
JS处理一些简单计算题
2018/02/24 Javascript
JavaScript实现多态和继承的封装操作示例
2018/08/20 Javascript
python ElementTree 基本读操作示例
2009/04/09 Python
Python实现控制台进度条功能
2016/01/04 Python
python开发利器之ulipad的使用实践
2017/03/16 Python
Python正则表达式如何匹配中文
2020/05/27 Python
详解pandas.DataFrame.plot() 画图函数
2020/06/14 Python
python代码中怎么换行
2020/06/17 Python
Python Selenium模块安装使用教程详解
2020/07/09 Python
5 个强大的HTML5 API 函数推荐
2014/11/19 HTML / CSS
俄罗斯名牌服装网上商店:UNIQUE FABRIC
2019/07/25 全球购物
如何提高JDBC的性能
2013/04/30 面试题
招聘专员岗位职责
2014/03/07 职场文书
爱情保证书大全
2014/04/29 职场文书
十佳党员事迹材料
2014/08/28 职场文书
运动会开幕式通讯稿
2015/07/18 职场文书
2019求职信大礼包
2019/05/15 职场文书
Python使用mitmproxy工具监控手机 下载手机小视频
2022/04/18 Python