diff options
| author | syuilo <Syuilotan@yahoo.co.jp> | 2020-02-08 18:02:28 +0900 |
|---|---|---|
| committer | syuilo <Syuilotan@yahoo.co.jp> | 2020-02-08 18:02:28 +0900 |
| commit | 79c366d1f211dc5b48b17a61a19bfc3a4cab4027 (patch) | |
| tree | f60dbbc8d5123f3cd6c048ea225bfe0f5c17994d /src/client | |
| parent | i18n (diff) | |
| download | sharkey-79c366d1f211dc5b48b17a61a19bfc3a4cab4027.tar.gz sharkey-79c366d1f211dc5b48b17a61a19bfc3a4cab4027.tar.bz2 sharkey-79c366d1f211dc5b48b17a61a19bfc3a4cab4027.zip | |
Update container.vue
Diffstat (limited to 'src/client')
| -rw-r--r-- | src/client/components/ui/container.vue | 27 |
1 files changed, 11 insertions, 16 deletions
diff --git a/src/client/components/ui/container.vue b/src/client/components/ui/container.vue index 66f55102be..4e7c9420ab 100644 --- a/src/client/components/ui/container.vue +++ b/src/client/components/ui/container.vue @@ -9,10 +9,8 @@ </button> </header> <transition name="container-toggle" - @before-enter="beforeEnter" @enter="enter" @after-enter="afterEnter" - @before-leave="beforeLeave" @leave="leave" @after-leave="afterLeave" > @@ -62,27 +60,23 @@ export default Vue.extend({ this.showBody = show; }, - beforeEnter(el) { - el.style.height = '0'; - }, enter(el) { - setTimeout(() => { - el.style.height = el.scrollHeight + 'px'; - }, 10); // HACKY: Vueのバグか知らないけどこうしないと動作しない + const elementHeight = el.getBoundingClientRect().height; + el.style.height = 0; + el.offsetHeight; // reflow + el.style.height = elementHeight + 'px'; }, afterEnter(el) { - el.style.height = 'auto'; - }, - beforeLeave(el) { - el.style.height = el.scrollHeight + 'px'; + el.style.height = null; }, leave(el) { - setTimeout(() => { - el.style.height = '0'; - }, 10); // HACKY: Vueのバグか知らないけどこうしないと動作しない + const elementHeight = el.getBoundingClientRect().height; + el.style.height = elementHeight + 'px'; + el.offsetHeight; // reflow + el.style.height = 0; }, afterLeave(el) { - el.style.height = 'auto'; + el.style.height = null; }, } }); @@ -90,6 +84,7 @@ export default Vue.extend({ <style lang="scss" scoped> .container-toggle-enter-active, .container-toggle-leave-active { + overflow-y: hidden; transition: opacity 0.5s, height 0.5s !important; } .container-toggle-enter { |