2011-03-22 142 views
2

我有一個使用jQuery滾動效果的頁面。檢測HTML元素是否滾動超出隱藏溢出

滾動元素包含在overflow="hidden"的元素中。

我需要激活一些Javascript代碼,一旦Portlet滾動到用戶視圖,以及其他Javascript代碼在Portlet隱藏時運行。我目前無法控制滾動按鈕,所以我有這個想法:檢查(定期,用window.setTimeout)用戶是否可以看到portlet。顯然,測試visible="block"不會有幫助。

你有什麼想法嗎?

謝謝

回答

1

我不得不通過jQuery元素的offset().left與容器的offset().left()offset().left + width()值進行比較。

我假設所有元素的大小爲了完全可見或不可見(所以我只需要檢查左上角)在我的情況下,滾動只是水平的,所以不需要檢查頂部和高度

4

看看容器的.scrollHeight屬性。它會告訴你滾動的位置。然後將其與您正在檢測的元素的偏移高度進行比較。

+0

我沒有提到滾動是水平的。然後我必須檢查scrollWidth VS offsetWidth? – 2011-03-22 14:34:35

1

最近我寫了一個非常小的插件,只是這樣的:

jQuery Scrolled Out Of View

這將是一個比較難在這裏發表有意義的代碼示例,所以我建議你檢查出的演示。

在一個元素上運行它,提供一個包裝元素,一個對象將返回 。該對象將具有頂部,底部,左側 的右側數值以及右側的數值,如果該元素已經從這兩個側面上的包裝中滾動出來,則表示元素在該側的視圖中有多少像素不在 視圖中。

我以爲我會在這裏發佈,這樣任何從搜索登陸的人都可以找到插件,也許可以自己節省一些時間。

+0

我很久以前就離開了這個項目,但你的努力絕對值得讚賞。 – 2012-11-08 19:55:12