2011-01-06 45 views
2

我有一張表,當行被鼠標懸停時,通過jQuery slideDown顯示每行的附加信息。當鼠標被刪除時,信息將通過slideUp刪除。如果.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 = $(window).scrollTop()+ $(window).height(); (verticalLimit> currentVerticalScroll){var scrollTo = verticalLimit - $(window).height(); $(「html:not(:animated),body:not(:animated)」)。animate({scrollTop:scrollTo},500); } 對不起,作爲評論看起來很糟糕。 – brad 2011-01-08 01:32:40

相關問題