今日紹介するJavaScriptライブラリ[MoveTo]は、容量が約1KBと軽量で、しかもjQueryに依存せずにスムーススクロールを導入できるスグレモノです。
サンプル:https://on-ze.com/demo/js-moveto/
使い方は超簡単。
下記サイトからダウンロードしたスクリプトファイル『moveTo.min.js』を読み込み、トリガーの設定をするだけ。
GitHub : https://github.com/hsnaydd/moveTo
上記サイト右上に表示されているボタン『Clone or download』→『Download ZIP』とクリックするとスグにダウンロードがはじまります。
入手した『moveTo.min.js』はHTMLの適当な箇所で読み込みましょう。
<script src="moveTo.min.js"></script>
またこの作業と合わせてリンクターゲットも指定しておきます。
具体的には、下記のようにID属性を指定することになりますね。
<div id="target">ここにスクロールしてきますよ!</div>
最後にスクロールを発火させるためのボタンを作ります。
<a href="#target" class="js-trigger" data-mt-duration="300">Trigger</a>
または……
<button type="button" class="js-trigger" data-target="#target" data-mt-duration="300">Trigger</button>
初期設定は「tolerance」「duration」「easing」「callback」の4つの項目が用意されており、次のように記述して使用します。
const moveTo = new MoveTo({ duration: 800 }); const triggers = $('.js-trigger'); for (var i = 0; i < triggers.length; i++) { moveTo.registerTrigger(triggers[i]); }
たったこれだけ!
各設定項目の詳細
- tolerance
- スクロール到達地点の許容誤差を補正します。初期値は「0」です。
- duration
- スクロール到達地点まで移動する時間をミリ秒単位で指定します。初期値は「800」です。
- easing
- スクロールのイージング描画の種類を指定します。初期値は「easeOutQuart」です。
- callback
- スクロール終了時に実行される処理を指定できます。
単純なスムーススクロールの実装で、これだけ設定できれば充分ではないでしょうか。
ぜひお試しください!