[improvement] add slide-down class (#2134)

This commit is contained in:
neverland 2018-11-25 09:28:21 +08:00 committed by GitHub
parent c8967fc8ed
commit 00458839a2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 92 additions and 54 deletions

View File

@ -1,5 +1,5 @@
<template>
<transition name="van-slide-bottom">
<transition name="van-slide-up">
<div
v-if="shouldRender"
v-show="value"

View File

@ -1,7 +1,7 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`callback events 1`] = `
<div class="van-actionsheet" name="van-slide-bottom">
<div class="van-actionsheet" name="van-slide-up">
<ul class="van-hairline--bottom">
<li class="van-actionsheet__item van-hairline--top"><span class="van-actionsheet__name">Option</span>
<!---->

View File

@ -1,5 +1,5 @@
<template>
<transition :name="transition ? 'van-slide-bottom' : ''">
<transition :name="transition ? 'van-slide-up' : ''">
<div
v-show="show"
:style="style"

View File

@ -6,7 +6,7 @@ exports[`renders demo correctly 1`] = `
<button class="van-button van-button--default van-button--normal"><span class="van-button__text">
弹出默认键盘
</span></button>
<div name="van-slide-bottom" class="van-number-keyboard van-number-keyboard--default" style="z-index:100;">
<div name="van-slide-up" class="van-number-keyboard van-number-keyboard--default" style="z-index:100;">
<div class="van-hairline--top van-number-keyboard__title"><span></span> <span class="van-number-keyboard__close">完成</span></div>
<div class="van-number-keyboard__body">
<i class="van-hairline van-key">1</i>
@ -29,7 +29,7 @@ exports[`renders demo correctly 1`] = `
<button class="van-button van-button--default van-button--normal"><span class="van-button__text">
弹出自定义键盘
</span></button>
<div name="van-slide-bottom" class="van-number-keyboard van-number-keyboard--custom" style="z-index:100;display:none;">
<div name="van-slide-up" class="van-number-keyboard van-number-keyboard--custom" style="z-index:100;display:none;">
<!---->
<div class="van-number-keyboard__body">
<i class="van-hairline van-key">1</i>

View File

@ -26,7 +26,7 @@ exports[`renders demo correctly 1`] = `
</ul>
<div class="van-password-input__info">密码为 6 位数字</div>
</div>
<div name="van-slide-bottom" class="van-number-keyboard van-number-keyboard--default" style="z-index:100;">
<div name="van-slide-up" class="van-number-keyboard van-number-keyboard--default" style="z-index:100;">
<!---->
<div class="van-number-keyboard__body">
<i class="van-hairline van-key">1</i>

View File

@ -1,15 +1,27 @@
@keyframes van-slide-bottom-enter {
@keyframes van-slide-up-enter {
from {
transform: translate3d(0, 100%, 0);
}
}
@keyframes van-slide-bottom-leave {
@keyframes van-slide-up-leave {
to {
transform: translate3d(0, 100%, 0);
}
}
@keyframes van-slide-down-enter {
from {
transform: translate3d(0, -100%, 0);
}
}
@keyframes van-slide-down-leave {
to {
transform: translate3d(0, -100%, 0);
}
}
@keyframes van-fade-in {
from {
opacity: 0;
@ -50,12 +62,22 @@
}
}
.van-slide-bottom {
.van-slide-up {
&-enter-active {
animation: van-slide-bottom-enter .3s both ease;
animation: van-slide-up-enter .3s both ease;
}
&-leave-active {
animation: van-slide-bottom-leave .3s both ease;
animation: van-slide-up-leave .3s both ease;
}
}
.van-slide-down {
&-enter-active {
animation: van-slide-down-enter .3s both ease;
}
&-leave-active {
animation: van-slide-down-leave .3s both ease;
}
}

View File

@ -9,30 +9,28 @@
</demo-block>
<demo-block :title="$t('animation')">
<van-switch-cell
v-model="show"
:title="$t('toggle')"
:border="false"
<van-cell
is-link
title="Fade"
@click="animate('van-fade')"
/>
<van-cell
is-link
title="Slide Up"
@click="animate('van-slide-up')"
/>
<van-cell
is-link
title="Slide Down"
@click="animate('van-slide-down')"
/>
<van-row>
<transition name="van-fade">
<van-col
v-show="show"
span="8"
>
Fade
</van-col>
</transition>
<transition name="van-slide-bottom">
<van-col
v-show="show"
span="8"
>
Slide Bottom
</van-col>
</transition>
</van-row>
<transition :name="transitionName">
<div
v-show="show"
class="demo-animate-block"
/>
</transition>
</demo-block>
</demo-section>
</template>
@ -58,8 +56,20 @@ export default {
data() {
return {
show: true
show: false,
transitionName: ''
};
},
methods: {
animate(transitionName) {
this.show = true;
this.transitionName = transitionName;
setTimeout(() => {
this.show = false;
}, 500);
}
}
};
</script>
@ -83,19 +93,15 @@ export default {
}
}
.van-col {
height: 50px;
color: @white;
font-size: 14px;
.demo-animate-block {
top: 50%;
left: 50%;
width: 100px;
height: 100px;
position: fixed;
border-radius: 3px;
text-align: center;
line-height: 50px;
margin-left: 15px;
background-color: #39a9ed;
}
.van-switch-cell {
margin-bottom: 15px;
margin: -50px 0 0 -50px;
background-color: @blue;
}
}
</style>

View File

@ -41,8 +41,13 @@ Add 1px border under the Retina screen for the element, based on a pseudo elemen
<div v-show="visible">Fade</div>
</transition>
<!-- slide bottom -->
<transition name="van-slide-bottom">
<div v-show="visible">Fade</div>
<!-- slide up -->
<transition name="van-slide-up">
<div v-show="visible">Slide Up</div>
</transition>
```
<!-- slide down -->
<transition name="van-slide-down">
<div v-show="visible">Slide Down</div>
</transition>
```

View File

@ -40,8 +40,13 @@ Vant 中默认包含了一些常用样式,可以直接通过 className 的方
<div v-show="visible">Fade</div>
</transition>
<!-- 下滑 -->
<transition name="van-slide-bottom">
<div v-show="visible">Fade</div>
<!-- 上滑进入 -->
<transition name="van-slide-up">
<div v-show="visible">Slide Up</div>
</transition>
```
<!-- 下滑进入 -->
<transition name="van-slide-down">
<div v-show="visible">Slide Down</div>
</transition>
```