はてなブログで任意の要素にスムーズスクロールできる HTML・jQuery コード
このブログ Corredor は、ウィンドウサイズを狭めると、ヘッダロゴの右上にハンバーガーメニューが登場するようになっている。これをクリックすると、「カテゴリ一覧」部分までアニメーションでスクロールする。
ちょっと前までは <a href="#box2">
という単純なページ内リンクで、サイドメニューの最上部に一気にスクロールするようにしていたのだが、はてなブログは jQuery が読込済であることを利用して、ちょっとした jQuery コードでスムーズスクロールするようにしてみた。
出来上がったコードは以下のとおり。
<a href="#" onclick="$('html,body').animate({scrollTop:$('.hatena-module-category').offset().top});return false;">
<i class="blogicon-reorder"></i>
</a>
重要なのは onclick
属性部分のみ。href="#"
はリンクとして効かせるために書いたまでなので、別に button
要素でも良い。内容物の i.blogicon-reorder
はハンバーガーメニューアイコンなのでお好きに変えれば良い。
カスタマイズするには、$('.hatena-module-category')
部分をスクロールしたい対象要素を特定する ID やクラス名に書き換えれば良い。
例えば、カテゴリ一覧ではなく検索窓部分にスムーズスクロールしたいなら、以下のようにする。ついでにボタンにしてみた。
<button onclick="$('html,body').animate({scrollTop:$('.hatena-module-search-box').offset().top});">検索窓へ</button>
はてなブログをカスタマイズしていくには、まだまだ jQuery が有用だ。