[+] Implement accordion with collapse

This commit is contained in:
Hykilpikonna
2021-12-25 02:44:52 -05:00
parent 186db58f2b
commit c3852c1f10
+15 -29
View File
@@ -1,7 +1,7 @@
<template> <template>
<div class="collapse"> <div class="collapse">
<h3 v-html="displayTitle" class="clickable" @click="show = !show"></h3> <h3 v-html="displayTitle" class="clickable"></h3>
<div class="content" :class="{hide: !show}"> <div class="content">
<slot></slot> <slot></slot>
</div> </div>
</div> </div>
@@ -10,6 +10,7 @@
<script lang="ts"> <script lang="ts">
import {Options, Vue} from 'vue-class-component'; import {Options, Vue} from 'vue-class-component';
import {Prop} from "vue-property-decorator"; import {Prop} from "vue-property-decorator";
import $ from "jquery";
@Options({components: {}}) @Options({components: {}})
export default class Collapse extends Vue export default class Collapse extends Vue
@@ -22,40 +23,25 @@ export default class Collapse extends Vue
{ {
return decodeURIComponent(this.title) return decodeURIComponent(this.title)
} }
mounted(): void
{
$('.collapse').accordion({collapsible: true, header: 'h3', heightStyle: 'content',
active: false})
}
} }
</script> </script>
<style lang="sass"> <style lang="sass">
.collapse .collapse
.hide h3.ui-accordion-header
animation: fadeout 1s margin: 0
-webkit-animation: fadeout 1s padding-top: 0.5em
opacity: 0 padding-bottom: 0.5em
max-height: 0
pointer-events: none
/* Chrome, Safari, Opera */ h3.ui-accordion-header:not(.ui-accordion-header-active):after
@-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: '...' content: '...'
h3:hover h3:hover
background-color: rgba(255, 131, 115, 0.36) //background-color: rgba(255, 131, 115, 0.36)
</style> </style>