Nuxt.jsでアニメーションを作るにはtransitionを使おう

  • 2020年5月12日
  • 2020年5月12日
  • Nuxt

https://jp.vuejs.org/v2/guide/transitions.htm

v-show, v-if時にアニメーションを使って要素を表示非表示したい場合には、Vue.jsのtransitionをまず試してみましょう。
<template>
  <transition name="fade">
  <div v-if="show">
    transition
  </div>
  </transition>
</template

<style>
.fade-enter {}
.fade-enter-active {}
.fade-enter-to {}
</style>

nameを設定すると、style指定で特別なクラス名を利用できます。

codepen

See the Pen MWaXerx by Junya Suzuki (@jszk) on CodePen.

transitionの使い方

表示

v-enter:開始状態
v-enter-active:トランジション中
v-enter-to:終了状態

非表示

v-leave:開始状態
v-leave-active:トランジション中
v-leave-to:終了状態

トランジションモード

in-out
 新しい要素がトランジション完了してからアウトする
out-in
 現在の要素がトランジション完了してからインする

リストでtransitionを使いたい時はtransition-group

リスクの用に複数要素に対してtransitionを利用したい場合はtransition-groupを利用する
<template>
  <transition-group name="fade" tag="ul">
    <li v-if="show">
      transition
    </li>
  </transition>
</template>

tag属性を指定しないとspanタグが表示されてしまうので注意。liタグのtransitionの場合は、tag属性にulを指定すると作りやすいです。

注意点

transitionタグの中には1つしか親タグを1つしかおいてはいけない
transition-groupではトランジションモードがつかえない
transiton-groupを使う時にはkey属性が必須

Fatal error: Uncaught Error: Call to undefined function set_post_views() in /home/jszk/desnote.com/public_html/wpjs/wp-content/themes/the-thor-child/single.php:658 Stack trace: #0 /home/jszk/desnote.com/public_html/wpjs/wp-includes/template-loader.php(78): include() #1 /home/jszk/desnote.com/public_html/wpjs/wp-blog-header.php(19): require_once('/home/jszk/desn...') #2 /home/jszk/desnote.com/public_html/index.php(17): require('/home/jszk/desn...') #3 {main} thrown in /home/jszk/desnote.com/public_html/wpjs/wp-content/themes/the-thor-child/single.php on line 658