最近のランディングページで見かける! スクロールに連動して背景画像をアニメーション化できるバニラJavaScriptのライブラリ -ScrollMovie.js
Post on:2022年4月6日
マウスのスクロールやキーボード操作、スマホのスワイプ操作に連動して背景画像をアニメーション化し、まるでスクロールで動画を操作しているかのようなコンテンツを実装できるバニラJavaScriptのライブラリを紹介します。
プロダクトのランディングページとかにいいですね。Appleなどは動画を使用していますが、操作している感があって面白いです。順再生・逆再生にも対応しており、背景画像なのでその上にコンテンツを自由に配置できるのも大きな魅力です。
ScrollMovie.js
ScrollMovie.js -GitHub
ScrollMovie.jsの特徴
ScrollMovie.jsは、ウィンドウをスクロールするときに背景画像をアニメーション化できるバニラJavaScriptのライブラリです。
動画みたいにするには、複数コマ分の画像が必要です。
ScrollMovie.js
※GIFアニメにしているのでカクカクしていますが、元ページは滑らかです。
ScrollMovie.jsのデモ
ScrollMovie.jsのデモは、下記で楽しめます。
スクロールまたは下部のバーで操作でき、キーボード操作にもスマホのスワイプ操作にも対応しています。
ScrollMovie.jsの使い方
Step 1: 外部ファイル
当スクリプトを外部ファイルとして記述します。
1 |
<script src="https://unpkg.com/scroll-movie@latest/dist/main.js"></script> |
Step 2: HTML
アニメーション化する背景画像を配置するHTMLを用意します。
1 2 3 |
<body> <div id="app"></div> </body> |
スライドは必要な枚数を<template>
で用意します。div
要素内は自由にレイアウトできます。
1 2 3 4 5 6 7 8 9 10 11 |
<body> <div id="app"></div> <!-- slide-1 --> <template id="slide-1"> <div class="slider-1-section">コンテンツ</div> </template> <!-- slide-2 --> <template id="slide-2"> <div class="slider-2-section">コンテンツ</div> </template> </body> |
Step 3: JavaScript
スクリプトを初期化し、実行します。
1 2 3 4 5 6 |
ScrollMovie("#app", { tracks: tracks, getImage: getImage, imageSize: number, scrollsPerImage: number, }); |
アニメーション
アニメーションはCSSで自由にカスタマイズできます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
.original-css-start { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); opacity: 1; } .original-css-end { position: absolute; top: 50%; left: 50%; transform: translate(100%, -50%); opacity: 0; } |
詳しくは、ScrollMovie.jsのドキュメントをご覧ください。
背景画像のアニメーション用に、動画から複数コマ分の画像を作成する方法なども解説されています。
sponsors