2015-09-06 77 views
0

我發現這個功能來檢查元素是否在屏幕上可見:檢查元素是x像素遠離可見

function isScrolledIntoView(elem){ 
    var $elem = $(elem); 
    var $window = $(window); 

    var docViewTop = $window.scrollTop(); 
    var docViewBottom = docViewTop + $window.height(); 

    var elemTop = $elem.offset().top; 
    var elemBottom = elemTop + $elem.height(); 

    return ((elemBottom <= docViewBottom) && (elemTop >= docViewTop)); 
} 

怎麼可以這樣修改,使得它將返回true如果一個元素x像素(例如500像素)遠離在屏幕上可見? (元素在屏幕下方)。

+0

你所要求似乎是'isScrolledIntoView'功能的全點的對面。如果圖像位於屏幕的上方,下方,右側或左側,這很重要嗎?你實際上是否還有一個輸入'x',其中元素必須正好''離開,或者它會離開'x'或更少? –

+0

元素應該在屏幕下方。它應該正好是'x'(如果JS能夠在用戶滾動時「捕捉」它,或者可以像501-> 499 px一樣跳過它)。爲了澄清這是一個像FB那樣的無限滾動系統(在底部到達之前加載更多的內容) – frosty

回答

0

假設此功能你想要的方式,只需添加到docViewBottom

var x = 500; // or whatever buffer you find works best  
var docViewBottom = docViewTop + $window.height() + x;