最近、MONSTER DIVE社内の勉強会でクリエイターのMZKさんから、
「ハッシュ付きのURLにアクセスした時、
fixedされたヘッダーがあると、要素に被ってしまう問題を
簡単に解決したい!」
と要望があったので、勉強がてらjQueryプラグインを作ってみました。
(function ($) { $.fn.pluginName = function (options) { // ここに処理を書く return this; // チェーンメソッドを利用する為自身を返す }; })(jQuery);
簡単ですね。
では、早速このプラグインの使い方を解説します。
$('html,body').initScroll();
これだけ!
ただ、これだとハッシュが付いた要素までスクロールするだけで、"fixedされたヘッダーが被ってしまう問題"は解決出来ません。
そこで、オプションを指定します。
$('html,body').initScroll({ offsetObject: $('#header') });
offsetObjectにfixedされたヘッダーを指定してあげます。
これでfixedされたヘッダーが被らなくなります。
この他にもいくつかオプションを用意しました。
本来のスクロール位置から移動させる
指定したオブジェクトの位置と高さ分、本来のスクロール位置から移動させる
スクロール時間(ミリ秒)
イージングの種類
※jQuery単体では「linear」と「swing」の2種類だけなので、別途「jQuery Easing Plugin」等を使用するか、velocity.jsを使用します。
velocity.jsを使用するかどうか
※別途velocity.jsの読み込みが必要。
思ったよりも簡単にプラグインを作れたので、これからも作業効率が上がるようなプラグインを作っていきたいですね。
作業効率を良くして早く帰りましょう!!(切実)