Skip to content

Commit 276a493

Browse files
author
hastom
committed
Revert to transition root element
1 parent 3eb34e2 commit 276a493

File tree

1 file changed

+51
-29
lines changed

1 file changed

+51
-29
lines changed

src/components/MdDialog/MdDialog.vue

+51-29
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
<template>
22
<md-portal>
3-
<div class="md-dialog" :class="dialogClasses">
4-
<md-focus-trap>
5-
<transition name="md-dialog">
3+
<transition name="md-dialog">
4+
<div class="md-dialog" v-if="mdActive">
5+
<md-focus-trap>
66
<div class="md-dialog-container" :class="[dialogContainerClasses, $mdActiveTheme]" v-on="$listeners"
7-
@keydown.esc="onEsc" v-if="mdActive">
7+
@keydown.esc="onEsc">
88
<slot/>
99
<keep-alive>
1010
<md-overlay :class="mdBackdropClass" md-fixed :md-active="mdActive" @click="onClick" v-if="mdBackdrop"/>
1111
</keep-alive>
1212
</div>
13-
</transition>
14-
</md-focus-trap>
15-
</div>
13+
</md-focus-trap>
14+
</div>
15+
</transition>
1616
</md-portal>
1717
</template>
1818

@@ -54,19 +54,19 @@
5454
mdAnimateFromSource: Boolean
5555
},
5656
computed: {
57-
dialogClasses() {
57+
dialogClasses () {
5858
return {
5959
'md-active': this.mdActive
6060
}
6161
},
62-
dialogContainerClasses() {
62+
dialogContainerClasses () {
6363
return {
6464
'md-dialog-fullscreen': this.mdFullscreen
6565
}
6666
}
6767
},
6868
watch: {
69-
mdActive(isActive) {
69+
mdActive (isActive) {
7070
this.$nextTick().then(() => {
7171
if (isActive) {
7272
this.$emit('md-opened')
@@ -77,16 +77,16 @@
7777
}
7878
},
7979
methods: {
80-
closeDialog() {
80+
closeDialog () {
8181
this.$emit('update:mdActive', false)
8282
},
83-
onClick() {
83+
onClick () {
8484
if (this.mdClickOutsideToClose) {
8585
this.closeDialog()
8686
}
8787
this.$emit('md-clicked-outside');
8888
},
89-
onEsc() {
89+
onEsc () {
9090
if (this.mdCloseOnEsc) {
9191
this.closeDialog()
9292
}
@@ -100,6 +100,10 @@
100100
@import "~components/MdLayout/mixins";
101101
@import "~components/MdElevation/mixins";
102102
103+
$opacity-transition-duration: .15s;
104+
$transform-transition-duration: .20s;
105+
$max-duration: max($opacity-transition-duration, $transform-transition-duration);
106+
103107
.md-dialog {
104108
position: fixed;
105109
top: 0;
@@ -109,13 +113,40 @@
109113
align-items: center;
110114
justify-content: center;
111115
pointer-events: none;
112-
display: none;
113-
z-index: -1;
116+
display: flex;
117+
transition-duration: $max-duration;
118+
z-index: 110;
119+
120+
&.md-dialog-leave,
121+
&.md-dialog-enter-to {
122+
.md-dialog-container {
123+
opacity: 1;
124+
transform: scale(1);
125+
}
126+
127+
.md-dialog-fullscreen {
128+
@include md-layout-xsmall {
129+
opacity: 0;
130+
transform: translate(0, 30%);
131+
}
132+
}
133+
}
134+
135+
&.md-dialog-enter,
136+
&.md-dialog-leave-to {
137+
.md-dialog-container {
138+
opacity: 0;
139+
transform: scale(.9);
140+
}
114141
115-
&.md-active {
116-
z-index: 110;
117-
display: flex;
142+
.md-dialog-fullscreen {
143+
@include md-layout-xsmall {
144+
opacity: 1;
145+
transform: translate(0, 0);
146+
}
147+
}
118148
}
149+
119150
}
120151
121152
.md-dialog-container {
@@ -130,9 +161,10 @@
130161
border-radius: 2px;
131162
backface-visibility: hidden;
132163
pointer-events: auto;
164+
opacity: 1;
133165
transform: scale(1);
134166
transform-origin: center center;
135-
transition: opacity .15s $md-transition-stand-timing, transform .2s $md-transition-stand-timing;
167+
transition: opacity $opacity-transition-duration $md-transition-stand-timing, transform $transform-transition-duration $md-transition-stand-timing;
136168
will-change: opacity, transform;
137169
138170
> .md-dialog-tabs,
@@ -183,16 +215,6 @@
183215
max-height: 100%;
184216
border-radius: 0;
185217
transform: none;
186-
187-
&.md-dialog-enter {
188-
opacity: 0;
189-
transform: translate3D(0, 30%, 0);
190-
}
191-
192-
&.md-dialog-leave-active {
193-
opacity: 0;
194-
transform: translate3D(0, 0, 0);
195-
}
196218
}
197219
}
198220
</style>

0 commit comments

Comments
 (0)