微信小程序实现弹框效果
本文实例为大家分享了微信小程序实现弹框效果的具体代码,供大家参考,具体内容如下
先上代码
wxml部分:
向上弹起 向下弹出 是否退出? 是否确定退出 确定 取消
wxss部分:
.top{
margin:0auto;
margin-top:50rpx;
background:#1da0ee;
color:#fff;
width:50vw;
text-align:center
}
.drawer_screen{
width:100%;
height:100%;
position:fixed;
top:0;
left:0;
z-index:1000;
background:#000;
opacity:0.5;
overflow:hidden;
}
/*content*/
.drawer_box{
width:600rpx;
height:300rpx;
overflow:hidden;
position:fixed;
top:50%;
left:50%;
z-index:1001;
background:#FAFAFA;
margin-top:-150rpx;
border-radius:3px;
margin-left:-300rpx;
}
.modalBox{
padding:60rpx;
font-size:30rpx;
}
.modalConf{
font-size:24rpx;
color:#999;
margin-top:20rpx;
}
.hidePick{
text-align:right;
margin-top:50rpx;
}
.hideModal{
color:#1da0ee;
margin-left:130rpx;
}
js部分:
Page({
data:{
},
//自定义弹框
powerDrawer:function(e){
console.log(e)//打印出当前对象
varcurrentStatu=e.currentTarget.dataset.statu;//获取statu属性值
varcurrentNum=e.currentTarget.dataset.num;//获取num属性值
currentNum=parseInt(currentNum,10)//注意,这一步是将字符串转换为数字
this.util(currentStatu,currentNum)//将参数引入util方法
},
util:function(currentStatu,currentNum){
/*动画部分*/
//第1步:创建动画实例
varanimation=wx.createAnimation({
duration:200,//动画时长
timingFunction:"linear",//线性
delay:0//0则不延迟
});
//第2步:这个动画实例赋给当前的动画实例
this.animation=animation;
console.log(currentNum)
//第3步:执行第一组动画
animation.opacity(0).translateY(currentNum).step();
//第4步:导出动画对象赋给数据对象储存
this.setData({
animationData:animation.export()
})
//第5步:设置定时器到指定时候后,执行第二组动画
setTimeout(function(){
//执行第二组动画
animation.opacity(1).translateY(0).step();
//给数据对象储存的第一组动画,更替为执行完第二组动画的动画对象
this.setData({
animationData:animation
})
//关闭
if(currentStatu=="close"){
this.setData(
{
showModalStatus:false
}
);
}
}.bind(this),200)
//显示
if(currentStatu=="open"){
this.setData(
{
showModalStatus:true
}
);
}
},
})
这只是很简单的一个弹框,类似的左右弹出只需要将translateY改为translateX就行了。但是这段代码有一个问题就是当你点击关闭的时候,currentNum是不存在的,同时关闭弹框时currentNum我们不可以赋值,所以需要利用小程序的缓存APi来完善这个动效。
为大家推荐现在关注度比较高的微信小程序教程一篇:《微信小程序开发教程》小编为大家精心整理的,希望喜欢。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。