この実装、面倒なら代行します
それでは前回に引き続き、コンテンツ切り替え時のエフェクトについてさらに豊かなものにするべく、今回は animate.css のエフェクトを利用してみることにします。
さっそくコードです。
animate.cssを読み込みます。
※ animate.cssはバージョン4から大幅に変わっているので、今回は3系に対応したCDNを使っています。
<head> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/4.0.0/animate.compat.css"> </head> <body> <main id="app"> <div v-cloak> <transition name="fade" mode="out-in" > <div v-if="center" key="center"> <div class="animated fadeInDownBig"> <p>最初の画面</p> <div v-on:click="watchLeft">左の画面にいく</div> <div v-on:click="watchRight">右の画面にいく</div> </div> </div> <div v-if="left" key="left"> <div class="animated" v-bind:class="leftSlideClass"> <p>左の画面</p> <div v-on:click="watchCenter">最初の画面に戻る</div> <div v-on:click="watchRight">右の画面にいく</div> </div> </div> <div v-if="right" key="right"> <div class="animated" v-bind:class="rightSlideClass"> <p>右の画面</p> <div v-on:click="watchCenter">最初の画面に戻る</div> <div v-on:click="watchLeft">左の画面にいく</div> </div> </div> </transition> </div> </main> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> <script> var app = new Vue({ el: "#app", data() { return { center: true, left: false, right: false, leftSlideClass: "fadeInBottomLeft", rightSlideClass: "fadeInBottomRight", }; }, methods: { watchCenter: function () { this.center = true; this.left = false; this.right = false; }, watchLeft: function () { this.center = false; this.left = true; this.right = false; this.leftSlideClass = "fadeInLeft"; }, watchRight: function () { this.center = false; this.left = false; this.right = true; this.rightSlideClass = "fadeInRight"; }, } }); </script> <style> div.click{ cursor: pointer; } [v-cloak] { display: none; } .fade-enter, .fade-leave-to { opacity: 0; } .fade-enter-active, .fade-leave-active { transition: opacity 0.5s; } .fade-enter-to, .fade-leave { opacity: 1; } </style> </body>
これで、左のコンテンツは左から、右のコンテンツは右から、上のコンテンツは上から現れてくるようになりました。
メソッド実行時の leftSlideClass rightSlideClass の値を変えれば、別の動きにすることもできます。
WordPressカスタマイズ事例やウェブ制作ノウハウの新着情報、お役立ち情報を
リアルタイムにメルマガ配信!
100ウェブで手がけた制作・開発案件を一部、ご紹介。
クライアントからご相談いただいた内容とその実装におけるポイント、工期、予算について確認いただけます。
【テレワーク実施中 につきお電話転送中】
コール中1秒程度無音状態になりますがそのままお待ちください。
受付時間
平日 10:00~18:00
メールでのお問い合わせでも
1営業日以内にご連絡いたします。