微信小程序自定義對話框彈出和隱藏動畫
本文實例為大家分享了微信小程序自定義對話框彈出和隱藏動畫的具體代碼,供大家參考,具體內(nèi)容如下
index.js
//index.js
var app = getApp();
let animationShowHeight = 300;
Page({
data:{
animationData:"",
showModalStatus:false,
imageHeight:0,
imageWidth:0
},
imageLoad: function (e) {
this.setData({imageHeight:e.detail.height,imageWidth:e.detail.width});
},
showModal: function () {
// 顯示遮罩層
var animation = wx.createAnimation({
duration: 200,
timingFunction: "linear",
delay: 0
})
this.animation = animation
animation.translateY(animationShowHeight).step()
this.setData({
animationData: animation.export(),
showModalStatus: true
})
setTimeout(function () {
animation.translateY(0).step()
this.setData({
animationData: animation.export()
})
}.bind(this), 200)
},
hideModal: function () {
// 隱藏遮罩層
var animation = wx.createAnimation({
duration: 200,
timingFunction: "linear",
delay: 0
})
this.animation = animation;
animation.translateY(animationShowHeight).step()
this.setData({
animationData: animation.export(),
})
setTimeout(function () {
animation.translateY(0).step()
this.setData({
animationData: animation.export(),
showModalStatus: false
})
}.bind(this), 200)
},
onShow:function(){
let that = this;
wx.getSystemInfo({
success: function(res) {
animationShowHeight = res.windowHeight;
}
})
},
})
index.wxml
<!--index.wxml-->
<view class="container-column">
<view animation="{{animationData}}" class="container-column buydes-dialog-container" wx:if="{{showModalStatus}}">
<view class="buydes-dialog-container-top" bindtap="hideModal"></view>
<view class="container-column buydes-dialog-container-bottom">
<block wx:for="{{['操作1','操作2','操作3','取消']}}" wx:for-index="index" wx:key="key" wx:for-item="item">
<view bindtap="hideModal" class="buydes-dialog-container-bottom-item" >{{item}}</view>
</block>
</view>
</view>
<image bindtap="showModal" bindload="imageLoad" style="width:{{imageWidth}}px;;height:{{imageHeight}}px;" src="../pro1.jpg"/>
</view>
index.wxss
.buydes-dialog-container{
width: 100%;
height: 100%;
justify-content: space-between;
background-color:rgba(15, 15, 26, 0.7);
position: fixed;
z-index: 999;
}
.buydes-dialog-container-top{
flex-grow: 1;
}
.buydes-dialog-container-bottom{
display: flex;
flex-grow: 0;
}
.buydes-dialog-container-bottom-item{
padding:24rpx;
display: flex;
justify-content: center;
border-bottom: 1rpx solid #eeeeee;
}
效果圖:

下面是實際開發(fā)中的效果圖,沒有源碼,但是原理和上面的是一樣的,通過上面的DEMO學(xué)習(xí)加上平常的CSS基礎(chǔ),完全可以做出下面的效果

源碼下載:微信小程序自定義對話框彈出和隱藏動畫
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
js判斷樣式className同時增加class或刪除class
用正則表達(dá)式判斷多個class之間是否存在真正的class(前后空格的處理)然后增加class刪除class,本文給予實現(xiàn)方法,感興趣的朋友可以了解下,或許對你有所幫助2013-01-01
詳解JavaScript中的類型判斷與類型轉(zhuǎn)換
這篇文章主要給大家講解一下JavaScript中的類型判斷與類型轉(zhuǎn)換的基本概念和使用方法,對我們的學(xué)習(xí)JavaScript的類型判斷與轉(zhuǎn)換有一定的幫助,需要的朋友可以參考下2023-07-07
基于SpringMVC+Bootstrap+DataTables實現(xiàn)表格服務(wù)端分頁、模糊查詢
這篇文章主要介紹了基于SpringMVC+Bootstrap+DataTables實現(xiàn)表格服務(wù)端分頁、模糊查詢的相關(guān)資料,非常不錯具有參考借鑒價值,需要的朋友可以參考下2016-10-10
JavaScript實現(xiàn)當(dāng)網(wǎng)頁加載完成后執(zhí)行指定函數(shù)的方法
這篇文章主要介紹了JavaScript實現(xiàn)當(dāng)網(wǎng)頁加載完成后執(zhí)行指定函數(shù)的方法,實例分析了javascript加載頁面及執(zhí)行函數(shù)的技巧,需要的朋友可以參考下2015-03-03
JS實現(xiàn)數(shù)據(jù)動態(tài)渲染的豎向步驟條
這篇文章主要為大家詳細(xì)介紹了JS實現(xiàn)數(shù)據(jù)動態(tài)渲染的豎向步驟條,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-06-06

