2016-01-06 43 views
1

我有此代碼來計算元素頂部並與scrollTop進行比較並執行任何操作。比較ScrollTop與元素的offset.top

的問題是,它不是「如果」

任何想法進入到condicional?

jQuery(document).ready(function() { 

    var h = parseInt(jQuery(".noticiasFoldsHome").height())/2 ; 

    var x = parseInt(jQuery(".noticiasFoldsHome").offset().top) - parseInt(h); 

    jQuery(window).scroll(function (event) { 
     var scroll = jQuery(window).scrollTop(); 
     //console.log(scroll); 

     if (parseInt(scroll) == parseInt(x)){ 
      console.log("entro"); 
     } 

    }); 



}); 

回答

2

您需要添加高度,而不是減去它。

var x = parseInt(jQuery(".noticiasFoldsHome").offset().top) + parseInt(h); 

我猜你是想在用戶進入一些元素做一些事情,如果是這樣你可能會想使用,如果條件的範圍喜歡比元素和小於元素的底部的頂部更大。

對於每個像素都不會調用滾動事件,它會在滾動中斷時調用。它可以像這樣0,79,156,210,350等等。基本上隨機。所以通過試圖比較它與單一的價值,你實際上試圖運氣。你最好使用一些範圍。元素應該在元素的頂部和元素的頂部之間+元素的總高度

此外,您已經爲您的jquery選擇器使用了一個類名,它指示可以有多於一個該類的元素,但此代碼可以用於只有第一個這種元素。所以要謹慎。

+0

是的,我試了一下,但還沒有正常工作 – user3810167

+0

因爲scroll even沒有被每個像素調用,所以當滾動被中斷時調用它。它可以像這樣0,79,156,210,350等等..基本上是隨機的。所以通過試圖比較它與單個值,你實際上是在試圖運氣..你最好使用它的一些範圍..元素應該在offset()。top()和offset()之間。top +元素的總高度 – Sachin

+0

好的,我明白了。我會使用「>」而不是「==」,我認爲這是可行的 – user3810167