2016-06-26 22 views
4

jQuery関数を使用して、クリックしてdivにスクロールしています。今はトップにスクロールしますが、トップの代わりに$('.scrollit')の中心にスクロールさせる方法だったのか、それともピクセルの量だけオフセットする方法があるのか​​疑問に思いましたか?jQuery:要素の中心までスクロール

$(".playbox").on('click', function() { 
    $('.scrollit').animate({ 
     scrollTop: $(this).offset().top 
    }, 1000); 
+1

類似した質問回答はこちら。 http://stackoverflow.com/questions/3898130/check-if-a-user-has-scrolled-to-the-bottom私はそれがあなたを助けると思う –

答えて

5

要素の高さを使用できます。

scrollTop: $(this).offset().top + $(this).height()/2; 

エレメントの高さの半分をスクロールトップに追加して、エレメントの中心までスクロールします。

+0

ありがとうTushar!、私はちょっとあなたの答えを改造してしまった特定のニーズに合わせて、それは素晴らしい仕事をした!私はscrollTop:$(this).offset()をやってしまった。top - $(this).height()ありがとう! – Jeff

1

もう1つの大きな違いが2つあります。あなたがオフセットを追加したり削除したりすると関係がありますので、私はのマイナスプラスでプラスを交換します。そして、私は画面サイズを参照として使用し、要素は使用しません。関数のスクロールとラップをアニメートすることはオプションです。

function scrollTo (id) { 
    $('html,body').animate({ 
     scrollTop: $("#"+id).offset().top - $(window).height()/2 
    }, 1000); 
} 
関連する問題