【Vue.js】アニメーションPart1

今回はボタンをクリックするたびにテキストがfadeInとfadeOutをするものを作ります。

イベントはVueですが、ほとんどはCSSが主になります。

 

サンプル


テキスト!テキスト!テキスト!テキスト!テキスト!テキスト!テキスト!テキスト!

HTML


<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>ボタンでフェードイン・フェードアウト</title>
    <script src="https://unpkg.com/vue@2.5.17"></script>
</head>
<body>
    <div id="app">
        <button @click="isShown = !isShown">ボタン</button>
        <transition name="test1">
            <p v-show="isShown">テキスト!テキスト!テキスト!テキスト!テキスト!テキスト!テキスト!テキスト!</p>
        </transition>
    </div>
</body>
</html>

JavaScript


new Vue({
  el: '#app',
  data: function() {
    return {
      isShown: false
    };
 }
});

CSS


.test1-enter-active,
.test1-leave-active {
/* アニメーションの時間、イージングなどを設定 */
transition: opacity 500msease-out;
}
/* フェードイン */
.test1-enter {
/* フェードインの初期状態 */
opacity: 0;
}
.test1-enter-to {
/* フェードインの終了状態 */
opacity: 1;
}
/* フェードアウト */
.test1-leave {
/* フェードアウトの初期状態 */
opacity: 1;
}
.test1-leave-to {
/* フェードアウトの終了状態 */
opacity: 0;
}

投稿者 PASOMEN

関連投稿

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です