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

本文详细介绍了如何在微信小程序中实现MUI的off canvas侧滑导航菜单效果。通过点击列表,右侧页面保持不动,左侧导航滑出。点击右侧遮罩层或左侧选项,左侧导航会还原,右侧遮罩层消失。文章提供了WXML、WXSS和JS代码示例,并总结了代码简化和渲染注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

实现的目标MUI的off canvas效果

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

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

WXML

{{item}}

{{text}}

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值