2012-09-13 46 views
1

我正在開發我的網站,我有一個按鈕(位置:固定),每次點擊它我需要它滾動頁面到下一個div class =圖片「,並首先在scrollTop()頂部的值下面。 我儲存的div在$圖片數組類=「圖片」,但我如果它需要的不知道...獲取div的存儲在數組x,y的位置

$(document).ready(function() 
{ 

    var $pictures = $('.picture'); 

    var i; 

    $(window).scroll(function() 
    { 
    for(i in $pictures) 
    { 
     if($("html").scrollTop() > $pictures[i].offset().top) 
     { 
     alert(i); 
     } 
    } 
    }); 
}); 

遺憾的是它不工作。 也許有人有更好的方法?

謝謝!

+1

嗯......你爲什麼要手工在選擇對象上迭代,而不是隻使用jquerys .each()方法? –

+1

我認爲一個jsFiddle會幫助他回答他的問題。 – JoeFletch

回答

1

試試這個。除了錯誤的for-in循環,您需要計算$(window).scrollTop()而不是$('html').scrollTop(),它總是等於零。

$(document).ready(function() { 
    var $pictures = $('.picture'); 

    $(window).scroll(function() { 
     $pictures.each(function(i, el) { 
      if ($(window).scrollTop() > $(this).offset().top) { 
       console.log(i); 
      }; 
     }); 
    }); 
});​ 

http://jsfiddle.net/mblase75/Uysmz/

這將記錄真實向上滾動到屏幕每一張照片的索引號。或者,如果你只是想那已經滾動出屏幕上的最後一張照片,你可以使用一個.filter函數:

$(document).ready(function() { 
    var $pictures = $('.picture'); 

    $(window).scroll(function() { 
     $justpast = $pictures.filter(function(i, el) { 
      return ($(window).scrollTop() > $(this).offset().top); 
     }).last(); 
     console.log($justpast.index()); 
    }); 
});​ 

http://jsfiddle.net/mblase75/RuR6R/

相關問題