Topic: Transition Animation
I hope you forgive this question.
I have an mdb-card
containing dynamically generated content. With a next button, I can switch to the 'next' content of the payload array. I would like a way to animate from card to card (a little like powerpoint, if you may).
Here's what I've tried:
On clicking the button, a dynamic data value is changed to animated fadeout slower
which is also referenced in my card's v-bind:class
attribute. Needless to say, the result is not what I intended.
Could you help with this? I will be very grateful.
Magdalena Dembna staff premium answered 6 years ago
Hi,
Animation classes like animated fadeIn
trigger an effect only when the element is mounted - I can suggest to approaches - one is to use v-show
directive as in the simple example shown below. Another is to use vue transition
wrapper.
<template>
<div>
<mdb-card v-show="show" class="animated fadeIn card">
<mdb-card-image src="https://mdbootstrap.com/img/Photos/Horizontal/Nature/4-col/img%20%286%29.jpg" alt="Card image cap"></mdb-card-image>
<mdb-card-body>
<mdb-card-title>Basic card</mdb-card-title>
<mdb-card-text>Some quick example text to build on the card title and make up the bulk of the card's content.</mdb-card-text>
<mdb-btn color="primary" @click="onClick">Change card</mdb-btn>
</mdb-card-body>
</mdb-card>
<mdb-card v-show="!show" class="animated fadeIn card">
<mdb-card-image src="https://mdbootstrap.com/img/Photos/Horizontal/Nature/4-col/img%20%282%29.jpg" alt="Card image cap"></mdb-card-image>
<mdb-card-body>
<mdb-card-title>Basic card</mdb-card-title>
<mdb-card-text>Some quick example text to build on the card title and make up the bulk of the card's content.</mdb-card-text>
<mdb-btn color="primary" @click="onClick">Change card</mdb-btn>
</mdb-card-body>
</mdb-card>
</div>
</template>
<script>
import { mdbCard, mdbCardImage, mdbCardBody, mdbCardTitle, mdbCardText, mdbBtn } from 'mdbvue';
export default {
name: 'HelloWorld',
components: {
mdbCard,
mdbCardImage,
mdbCardBody,
mdbCardTitle,
mdbCardText,
mdbBtn
},
data() {
return {
show: true
};
},
methods: {
onClick(){
this.show = !this.show
}
}
}
</script>
<style>
.card {
width: 400px;
margin: auto;
}
</style>
Kind regards, Magdalena
imyke commented 6 years ago
Thank you. This is a completely different strategy from what I was thinking.
Magdalena Dembna staff premium commented 6 years ago
I hope you've managed to achieve the desired effect. Good luck with your project. Kind regards, Magdalena
laniakea commented 5 years ago
Magdalena, that solution didn't works for mdb-card-body
Magdalena Dembna staff premium commented 5 years ago
@laniakea please post a code snippet. Kind regards, Magdalena
FREE CONSULTATION
Hire our experts to build a dedicated project. We'll analyze your business requirements, for free.
Answered
- User: Free
- Premium support: No
- Technology: MDB Vue
- MDB Version: 5.3.0
- Device: Laptop
- Browser: Firefox
- OS: Windows
- Provided sample code: No
- Provided link: No