問題4:transitionを使ってアニメーションを追加しよう!
これまで作ってきたアプリの画面にアニメーションを加えていこう。
以下の見本動画は`transition-group`というタグを使って
実現させているぞ。リストクリックしたら右へスライドして消えていく仕様になっている。
以下の見本動画は`transition-group`というタグを使って
実現させているぞ。リストクリックしたら右へスライドして消えていく仕様になっている。
あらかじめエディタに書くコード
--- listItem.vue
<template>
<div>
<transition name="slide-fade">
<li v-if="show" @click="show = !show" class="list-item">{{ dream.name }}</li>
</transition>
</div>
</template>
<script>
</script>
<style>
.list-item {
width: 100%;
padding: 8px;
margin-bottom: 10px;
list-style: none;
border-left: 5px solid #40b983;
border-bottom: 1px solid #40b983;
border-top: 1px solid #40b983;
border-right: 1px solid #40b983;
font-weight: 700;
cursor: pointer;
}
.list-item:hover {
background: #40b983;
opacity: .8;
color: #fff;
}
</style>
¥Vue¥
期待する画面
解答ソースコード
--- ListItem.vue
<script>
export default {
props: {
dream: {
type: Object,
}
},
data() {
return {
show: true,
}
}
}
</script>
<style>
.slide-fade-enter-active {
transition: all .3s ease;
}
.slide-fade-leave-active {
transition: all .8s cubic-bezier(1.0, 0.5, 0.8, 1.0);
}
.slide-fade-enter, .slide-fade-leave-to {
transform: translateX(500px);
opacity: 0;
}
</style>
¥Vue¥
#忍者CODE無料問題集で活動を記録しよう
完了にする!
cssを見てもらったらわかると思うが、name属性で指定した名前+`-enter-active`や`-leave-active`でアニメーションをどう動かすかを決めいている。