0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Vue.js Transition概要

Posted at

Vue.jsのTransition機能についてまとめる。(超基礎の学習記録)

基本的な使用方法

1. transitionタグで囲む

  • トランジションを適用したい範囲をtransitionタグで囲み、コンポーネントを作成。

  • このコンポーネント内要素に、アニメーションなどの動きをCSSで記述していくためのクラスを自動的に付与。

    <transition>
        <p v-if="show">Transition Test</p>
    </transition>
    

2. v-show/v-ifディレクティブの適用

  • CSSによって動きを制御したい要素には、v-showまたはv-ifディレクティブで表示・非表示する挙動を実装。
  • ディレクティブの機能により、クラスの切り替え機能を割り当て。

3. クラス(CSS)記述

  • 付与されるクラスは、以下2つの状態に大別される。
    • Enter
    • Leave
  • 上記状態は、v-showおよびv-ifによって切り替わるように処理。
  • 以下の例では、ボタンをクリックすると下記図の流れでクラスを適用。
    1. .v-enter時には、文字Testは透明状態(opacity:0)となっている。
    2. Transitionボタンをクリックすると.v-enter-active処理が実行される。.v-enter-to状態となり文字Testが表示される。
    3. Transitionボタンを再度クリックすると.v-leave-active処理が実行され、.v-leave-to状態に遷移する。
<template>
  <div id="app">
    <button v-on:click="show = !show">
        Transition
    </button>
    <transition>
        <p v-if="show">Test</p>
    </transition>
  </div>
</template>
<script>
export default {
  name: 'test',
  data :function (){
    return {
      show: false
    }
  }
}
</script>
<style scoped>	
.v-enter-active, .v-leave-active {
  transition: opacity .5s;
}
.v-enter, .v-leave-to{
  opacity: 0;
}
</style>

Vue-transition-image

Transitionの識別

複数のtransitionを利用する際、name属性を追加して識別する。以下の例では、test1をプレフィックスとしたクラスが生成される。

.test1-enter-activeのように記述してデフォルトの.v-enter-activeとは別のコンポーネントとして識別可能。

<template>
  <div id="app">
    <button v-on:click="show = !show">
        Transition
    </button>
    <transition name="test1">
        <p v-if="show">Test1</p>
    </transition>
  </div>
</template>
<script>
export default {
  name: 'test1',
  data :function (){
    return {
      show: false
    }
  }
}
</script>
<style scoped>	
.test1-enter-active, .test1-leave-active {
  transition: opacity 1s;
}
.test1-enter, .test1-leave-to{
  opacity: 0;
}
</style>

初期描画時のTransition

ノードの初期描画時にトランジションを適用したい場合、appear 属性を追加する。

appear 属性を指定された transition タグは、ページを開いた時に、要素が追加される。

<transition appear>
  <!-- ... -->
</transition>

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?