このブログは未経験からのエンジニア転職やプログラミングの勉強方法などを発信する、現役エンジニアによるエンジニアのためのトータル技術ブログです。ブログとご一緒にSNSのフォローもよろしくお願いします。

Twitterをフォローする

【Vue.js】 Transitionでクロスフェードなスライダーをつくる方法

JavaScript
スポンサーリンク

こんにちは!あっきー (IwswAkht) です!

本日は Vue.js で複数の画像をスライドさせる方法を記事にしました!

フロント側でよく使う機能だと思いますのでご参考になれば幸いです。

それではまとめていきます。

 

スポンサーリンク

はじめに

 

まずは完成のイメージを動画で確認してください!

 

 

画像がふわっと切り替わるイメージでスライドされます。

下準備として適当なフォルダを作成して中に .html, .css, .js ファイルと好きな画像を適当に格納しておいてください。

↓フォルダ構成の例↓

[CrossFade]

|_index.html
|_style.css
|_app.js
|_slide-1.jpg
|_slide-2.jpg
|_slide-3.jpg

 

CDN を使用して作成していますので、環境構築は不要です!

慣れてきたらコンポーネント化して組み込んでみたりするとさらに勉強になるかと思います

 

画像をループで一覧表示

 

まずはフォルダに格納された画像を一覧で表示させましょう。

 

index.html

 

app.js

 

CSS で画像を重ねる

 

いまのところ画像一覧が下に向かってただ表示されているだけですね。

この画像を重ねて最初の一件だけ表示されているような状態にします。

 

style.css

 

この重なった画像にインデックスを振ってインデックスを変化させていけばスライドするようになります。

 

画像を切り替える

 

先ほどの HTML に以下の修正を加えてください。

 

index.html

 

以下の実装を追加してます。

1.ループでの画像表示の時にインデックス(idx)を振り分け、条件値(current_slide)とインデックスが一致した場合表示。

2.配列[idx]の画像を表示。

試しに先ほどの Jsファイルに以下の修正を加えて条件値の値を変更することで表示される画像がかわることを確認してみてください。

 

app.js

 

あとは一定時間経過するごとに条件値を増やせば自動で画像が切り替わります。

mountedに以下の修正を加えてください。

 

app.js

 

1.setIntervalメソッドの引数に3秒を設定。
2.時間が経過するごとに条件値の値を増やす
3.条件値が配列の最後の値に到達したら0に戻す

これでずっと画像がスライドで切り替わるようになります。

あとはトランジションで効果を加えて終了です。

 

Transition で効果を加える

 

HTMLファイルないのスライド部分ををTransitionタグで囲みます。

 

index.html

 

CSSにトランジションの効果を加えます。

style.css

 

画面を確認してみてください。最初の動画のようにふわっと画像が切り替わることが確認できると思います。

 

完成コード(コピペOK)

 

index.html

style.css

 

app.js

 

トランジションや CSS の幅の設定などは自由に変えて使ってください!

さいごに

 

最後まで読んでいただきありがとうございます。

これからよく使いそうな機能はコンポーネント化しやすくするため、このように個別でスクリプトをつくっては公開しようと思います!

ぜひ、使っていってください!

この記事を気に入っていただけましたらTwitterdでもプログラミングに関してのツイートをリアルタイムでしていますので
ご一緒にフォローもお願いします。

 

スポンサーリンク
あっきー

元キャバクラ店長から未経験でエンジニアに転職した異端児。

自分の経験を元に、エンジニア転職や未経験からでも挫折しないプログラミングの勉強方法の発信をしてます。

あっきーをフォローする
JavaScriptVue.js
\良い記事だったらシェアしてね!/
スポンサーリンク
駆け出しエンジニアのつぶやき