2017-08-10 17 views
-1

クリックするとウェブサイトをスクロールさせるウェブサイトのボタンをいくつか作成したいと思います。たとえば、このウェブサイトのhttps://www.slugterra.com/をクリックすると、ウェブサイトの4つのボタンをクリックすると、スムーズにスクロールします。 今、このコードを使用して自分のウェブサイトを移動します。ボタンをスクロールしてウェブサイトをスムーズにスクロール

<a href="#Center">Go to Center</a> 
+0

良い解決策は、['requestAnimationFrame'](https://developer.mozilla.org/en-US/docs/Web/API/window/requestAnimationFrame)を直接またはライブラリ経由で使用することです。これにより、アニメーションがスムーズになり、タブが表示されていないときの電池寿命が節約されます。 –

答えて

0

私は自分のページにスムーズスクロールを実現するために、次のコードを使用します。

var $root = $('html, body'); 
$('.smothScroll').click(function() { 
    var href = $.attr(this, 'href'); 
    $root.animate({ 
     scrollTop: $(href).offset().top 
    }, 500, function() { 
     window.location.hash = href; 
    }); 
    return false; 
}); 

(注)このコードで、あなたが動作するように要素にクラス.smoothScrollを追加する必要があること。

余分なクラスを追加せずにすべてのリンクを操作する場合は、jQueryセレクターをaに変更することができますが、これは他の要素に望ましくない影響を与える可能性があります。

リンク先のページにスムーズなスクロール以外のアニメーションがあります。コードを分析すると、コンテナの絶対位置はtopleftのプロパティで移動します。これは、スクロールイベントを聞き、コンテナのtopleftプロパティを持つ実際のscrollTopパラメータと等価を設定することで簡単に達成できます。

+0

ありがたいことに、jQueryの最新バージョンでは、['animate'](http://www.javax.jp)のために[' requestAnimationFrame'](https://developer.mozilla.org/en-US/docs/Web/API/window/requestAnimationFrame) /api.jquery.com/animate/)が呼び出されます。 –

関連する問題