現状最新版のFireFoxで見られるような、画面のスクロール動作でちょっとした余韻を残すアクションを加えてみたい時には、jquery.easie.jsを使って実現が出来ます。
1.jQuery本体とjquery.easie.js、mousewheel.jsを読み込む
▼jQuery本体
jQuery本体のバージョンによって動作しないことがあります。サンプルではGoogleCDNの「1.6.4」バージョンで動作確認しています。
▼jquery.easie.jsをダウンロード
▼jQuery.mousewheel.jsをダウンロード
2.HTMLを記述
高さをある程度取りたいので、画像を6枚並べています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
<section> <h3>Section 01</h3> <p><img src="images/01.jpg" width="100%" /></p> </section> <section> <h3>Section 02</h3> <p><img src="images/02.jpg" width="100%" /></p> </section> <section> <h3>Section 03</h3> <p><img src="images/03.jpg" width="100%" /></p> </section> <section> <h3>Section 04</h3> <p><img src="images/04.jpg" width="100%" /></p> </section> <section> <h3>Section 05</h3> <p><img src="images/05.jpg" width="100%" /></p> </section> <section> <h3>Section 06</h3> <p><img src="images/06.jpg" width="100%" /></p> </section> |
3.JavaScriptを記述
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
<script type="text/javascript"> $(function() { var scrolls = 0; var speed = 700; $('html').mousewheel(function(event, move) { if(jQuery.browser.webkit){ if (move > 0) scrolls = $('body').scrollTop() - speed; else if (move < 0) scrolls = $('body').scrollTop() + speed; } else { if (move > 0) scrolls = $('html').scrollTop() - speed; else if (move < 0) scrolls = $('html').scrollTop() + speed; } $('html,body') .stop() .animate({scrollTop: scrolls}, 'slow',$.easie(0,0,0,1)); //イージングプラグイン使わないとき //.animate({ scrollTop: scrolls }, 'normal'); return false; }); }); </script> |
変数speedの値を変更することでスピードの調整が可能です。
FireFoxユーザーにとっては既に備わっている動きなので特別必要がないかもしれませんが、そのほかのブラウザにおいて、ちょっとした動きに抑揚をつけたい場合などには効果的かもしれません。