[+] Try to make collapse animation
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="collapse">
|
<div class="collapse">
|
||||||
<h3 v-html="displayTitle"></h3>
|
<h3 v-html="displayTitle" class="clickable" @click="show = !show"></h3>
|
||||||
<div class="content">
|
<div class="content" :class="{hide: !show}">
|
||||||
<slot></slot>
|
<slot></slot>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -16,6 +16,8 @@ export default class Collapse extends Vue
|
|||||||
{
|
{
|
||||||
@Prop() title!: string
|
@Prop() title!: string
|
||||||
|
|
||||||
|
show = false
|
||||||
|
|
||||||
get displayTitle(): string
|
get displayTitle(): string
|
||||||
{
|
{
|
||||||
return decodeURIComponent(this.title)
|
return decodeURIComponent(this.title)
|
||||||
@@ -25,6 +27,35 @@ export default class Collapse extends Vue
|
|||||||
|
|
||||||
<style lang="sass">
|
<style lang="sass">
|
||||||
.collapse
|
.collapse
|
||||||
.content
|
.hide
|
||||||
display: none
|
animation: fadeout 1s
|
||||||
|
-webkit-animation: fadeout 1s
|
||||||
|
opacity: 0
|
||||||
|
max-height: 0
|
||||||
|
pointer-events: none
|
||||||
|
|
||||||
|
/* Chrome, Safari, Opera */
|
||||||
|
@-webkit-keyframes fadeout
|
||||||
|
from
|
||||||
|
display: block
|
||||||
|
visibility: visible
|
||||||
|
opacity: 1
|
||||||
|
to
|
||||||
|
transform: translateY(-100px)
|
||||||
|
display: none
|
||||||
|
visibility: hidden
|
||||||
|
opacity: 0
|
||||||
|
height: 0
|
||||||
|
|
||||||
|
*
|
||||||
|
transition: all 0.25s ease
|
||||||
|
|
||||||
|
h3
|
||||||
|
background-clip: padding-box
|
||||||
|
|
||||||
|
h3:after
|
||||||
|
content: '...'
|
||||||
|
|
||||||
|
h3:hover
|
||||||
|
background-color: rgba(255, 131, 115, 0.36)
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
Reference in New Issue
Block a user