2009-11-15 201 views
0

在JavaScript中,當屏幕中顯示元素(例如div)時,是否可以觸發某個操作?Javascript/AJAX元素顯示事件

我有一個「無盡的」網格,水平和垂直擴展,我想在用戶滾動時使用AJAX動態加載元素。

感謝

+0

這個問題可能會感興趣的爲好。 http://stackoverflow.com/questions/704758/how-to-check-if-an-element-is-really-visible-with-javascript – Nosredna 2009-11-15 23:56:39

回答

3

您可以檢查是否滾動條是接近尾聲的是這樣 (我假設你正在使用jQuery):

$('#my-container').scroll(function(e) { 
    var tolerance = 0;  
    var $el = $(this); 
    if ($el[0].scrollTop + $el.height() >= $el[0].scrollHeight - tolerance) { 
    // do your ajax stuff 
    } 
}); 

編輯:您可以檢查是否有元素在視口中與viewport plugin (或更好的,您可以將相同的邏輯應用到除窗口以外的任何容器)

+0

感謝gpilotino,但這將意味着加載一個完整的行或列,而不是網格的單個元素。我想避免加載一個完整的列,因爲網格可能變得非常大! – Victor 2009-11-15 23:59:51

+0

我認爲在這種情況下,你必須同時檢查水平和垂直。實際上,您必須檢查「visibile」元素的scrollTop/Left是否在視口內(window.scrollTop/Left/height/width) – gpilotino 2009-11-16 00:11:00

1

您可以使用文檔。身體。 scrollTop和document.body。 scrollLeft知道滾動的位置。

P.S:gpilotino是更快,實際上是發佈了一些有用的代碼