网络编程 
首页 > 网络编程 > 浏览文章

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

(编辑:jimmy 日期: 2024/5/9 浏览:3 次 )

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

实现的目标MUI的off canvas效果

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

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

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

WXML

<view class="page">
 <view class="page-top {{open ">
  <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="/UploadFiles/2021-04-02/btn.png">

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 "font-size: medium">总结:

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});

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

上一篇:记一次vue去除#问题处理经过小结
下一篇:微信小程序MUI侧滑导航菜单示例(Popup弹出式,左侧不动,右侧滑动)
高通和谷歌日前宣布,推出首次面向搭载骁龙的Windows PC的优化版Chrome浏览器。
在对骁龙X Elite参考设计的初步测试中,全新的Chrome浏览器在Speedometer 2.1基准测试中实现了显著的性能提升。
预计在2024年年中之前,搭载骁龙X Elite计算平台的PC将面世。该浏览器的提前问世,有助于骁龙PC问世就获得满血表现。
谷歌高级副总裁Hiroshi Lockheimer表示,此次与高通的合作将有助于确保Chrome用户在当前ARM兼容的PC上获得最佳的浏览体验。