2016-07-29 11 views
0

私は、対応するボタンのクリックでスクロールしたいオーバーフローテキストを含むDivを持っています。いずれかの方向に100ピクセルスクロールするように設定されています。この関数は、jQuery .animateを使用しないで使用するとうまく動作します。scrollTopが.animateで正しく機能しない

$(function() { 
    $("#upBtn").click(function(){ 
    $('#scroll').scrollTop($('#scroll').scrollTop()-100); 
}); 

$("#downBtn").click(function(){ 
    $('#scroll').scrollTop($('#scroll').scrollTop()+100); 
}); 

一度、アニメーションを追加すると、いずれかの方向に1回だけボタンをクリックできます。それは私が最初の100ピクセルを超えてスクロールすることはできません。

$("#scroll").animate({ scrollTop: "100px" }); 

I put together a codepen.

答えて

1

はい、正しい動作です。

なぜですか?

これは既に100pxであるため、それ以上はスクロールしません。あなたは現在のスクロールトップの位置を取得し、それに100pxに追加することができ

:何を行うべきである

。以下のように:

$("#scroll").animate({ scrollTop: $("#scroll").scrollTop() + 100 }); 

他の方法でも同じです。

+0

返信いただきありがとうございます。あなたの説明は理にかなっていますが、これを試しましたが、もう一度「下へ」ボタンをクリックすると、アニメーションなしでDIV内のテキストの最後までスクロールします。上のボタンも機能しますが、アニメーションはありません。 [更新されたCodePen](http://codepen.io/alanc242/pen/GqBAjp) –

関連する問題