スポンサーリンク
リンクを押したら、ふわっと目的の場所までスクロールしたい!
jQueryを使用して、「ふわっ」とスムーズにスクロールさせる方法を載せています。
こんな動きを作ってみよう
DEMOです。
下の「クリックしてね」をクリックして動きをみてください!
コード例
CSSは色や高さを指定するために書いたので、この通りに書かなくて大丈夫です。
HTMLに記述するもの
<div class="click-link"> <a href="#link1" class="click-btn">クリックしてね</a> </div> <div class="jump-link" id="link1"> <p>ここに飛ぶよ</p> </div>
- 飛ばしたい場所に「id名」
- ボタンに「href」と「class名」
飛ばしたい場所に「id名」
上のコードの、4行目のところです。
<div class=”jump-link” id=”link1″>
<p>ここに飛ぶよ</p>
</div>
このように飛ばしたいところ(リンク先)のHTMLにid名をつけてあげてください。
ボタンに「href」と「class名」
上記のコードの2行目のところです。
<a href=”#link1″ class=”click-btn”>クリックしてね</a>
先ほど記述したid名をhrefに書きます。
この時「#」をつけることを忘れないでくださいね!
あと、この「class名」(click-btn)が大事なところです。
今からこのclass名を使っていきます。
jsファイル(jQuery)に記述するもの
$('a.click-btn').click(function() { // スクロールの速度 var speed = 400; // ミリ秒で記述 var href = $(this).attr("href"); var target = $(href == "#" || href == "" ? 'html' : href); var position = target.offset().top; $('body,html').animate({ scrollTop: position }, speed, 'swing'); return false; });
さっきHTMLのボタンに書いた「class名」(click-btn)を1行目に書きましょう。
$(‘a.click-btn‘).click(function() {
まとめ
まずリンク先にちゃんと飛ぶように。ボタンのhrefとリンク先のid名を記述する。
その後、ボタンに付けたclass名をjQueryに記述(1箇所)。
あとは
$('a.click-btn').click(function() { // スクロールの速度 var speed = 400; // ミリ秒で記述 var href = $(this).attr("href"); var target = $(href == "#" || href == "" ? 'html' : href); var position = target.offset().top; $('body,html').animate({ scrollTop: position }, speed, 'swing'); return false; });
これをコピペしてしまえばスクロールしてくれます(^^)