Merge pull request '(#35) Add mask show hide motion' (#50) from dev-mrkbear into master

Reviewed-on: http://git.mrkbear.com/MrKBear/mini-dlpu-v3/pulls/50
This commit is contained in:
MrKBear 2022-01-20 17:20:42 +08:00
commit b36996e352
3 changed files with 62 additions and 3 deletions

View File

@ -1,3 +1,4 @@
@import "../../app.scss";
view.mask {
position: fixed;
@ -5,4 +6,40 @@ view.mask {
height: 100%;
background-color: rgba($color: #000000, $alpha: .2);
z-index: 1;
}
view.mask.block {
display: block;
}
view.mask.none {
display: none;
}
view.mask.show {
animation: show .1s cubic-bezier(0, 0, 1, 1) both;
opacity: 1;
}
view.mask.hide {
animation: hide .1s cubic-bezier(0, 0, 1, 1) both;
opacity: 0;
}
@keyframes show{
from {
opacity: 0;
}
to {
opacity: 1;
}
}
@keyframes hide{
from {
opacity: 1;
}
to {
opacity: 0;
}
}

View File

@ -2,6 +2,11 @@ import { Modular, Manager } from "../../core/Module";
class Mask<M extends Manager> extends Modular<M> {
/**
*
*/
public static readonly animateTime: number = 100;
public data? = {
/**
@ -9,6 +14,11 @@ class Mask<M extends Manager> extends Modular<M> {
*/
zIndex: 1,
/**
*
*/
isDisplay: false,
/**
*
*/
@ -21,14 +31,25 @@ class Mask<M extends Manager> extends Modular<M> {
*
*/
public showMask() {
this.setData({ isShow: true });
this.setData({
isShow: true,
isDisplay: true
});
}
/**
*
*/
public hideMask() {
this.setData({ isShow: false });
this.setData({
isShow: false
});
this.disappearTimer = setTimeout(() => {
this.setData({
isDisplay: false
});
}, Mask.animateTime);
}
public override onLoad() {

View File

@ -1,5 +1,6 @@
<!-- 蒙版 -->
<view class="mask" bindtap="mask$handleClickMask" style="display:{{mask$isShow ? 'block' : 'none'}}"></view>
<view class="mask {{ mask$isShow ? 'show' : 'hide' }} {{ mask$isDisplay ? 'block' : 'none' }}"
bindtap="mask$handleClickMask"></view>
<!-- 顶部的阴影 -->
<view class="top-shadow"></view>