2011-01-06 7 views
2

私は、行がmouseoverされたときに、jQueryのslideDownによって各行の追加情報を明らかにする表を持っています。マウスが取り外されると、スライドアップで情報が削除されます。.slideDownがブラウザの一番下に来ると自動的にページをスクロールしますか?

これはうまく動作しますが、ページ上の最後の項目をマウスオーバーすると、ブラウザウィンドウの下にスライドします。ユーザーがマウスホイールなどでスクロールダウンすると、情報が表示されますが、マウスポインタを動かしてスクロールバーをスライドさせると情報が消えます。

jQueryには、ページがスクロールダウンされ、同時にslideDownが実行されるときに情報が表示されるかどうか、またはこれを解決する必要があるという簡単な方法がありますか?

答えて

1

縦の位置(上端)と高さを計算することで、最後の行がどれだけ深くなっているかを試すことができます。その値が現在のスクロールを通過する場合、その値にスクロールします。

//ダニのための十分な閉じる

var verticalLimit = $("#lastRow").offset().top + $("#lastRow").height() ; 
var currentVerticalScroll = $(window).scrollTop(); 
if (verticalLimit > currentVerticalScroll){ 
    $("body").animate({ scrollTop: verticalLimit }, 500); 
} 
+0

をテストしたわけではありません。あなたのコードはうまく動作しません(ページ下部を調べるのではなく、ページの上部を調べます)が、私の演奏を得ました。これは私が思いついた最終テスト版です。 function slide_and_scroll(obj){ var verticalLimit = obj.offset()。top + obj.height(); var currentVerticalScroll = $(ウィンドウ).scrollTop()+ $(ウィンドウ).height(); if(verticalLimit> currentVerticalScroll){ var scrollTo = verticalLimit - $(window).height();$( "html:not(:animated)、body:not(:animated)")。アニメーション({scrollTop:scrollTo}、500); } 申し訳ありませんが、ご意見としてはひどいです。 – brad

+0

私はここから少しでも借りました:http://oncemade.com/animated-page-scroll-with-jquery/ – brad

関連する問題