2017-02-21 68 views
0

你好幾張照片顯示在滾動。 我用這個代碼:jquery獲取窗口位置+滾動 - 但如果不滾動不顯示

$(document).ready(function() { 
    $(window).scroll(function(){ 
     $('.fade').each(function(i){ 
      var bottom_of_object = $(this).position().top + ($(this).outerHeight()/2); 
      var bottom_of_window = $(window).scrollTop() + $(window).height(); 
      if(bottom_of_window > bottom_of_object){ 
       $(this).addClass('showme'); 
      } 
      if(bottom_of_window < bottom_of_object){ 
       $(this).removeClass('showme'); 
      } 
     }); 
    }); 
}); 

這項工作這麼好,但是當我打開網頁,如果窗戶是高的照片顯示不出來,讓一個與空間非常難看。它(我認爲)是因爲add類只能在窗口滾動條上工作。

我該如何解決這個問題?我需要當照片在窗口位置顯示關係時,而不僅僅是在卷軸上?

謝謝!

+0

你需要什麼叫做延遲加載。你爲什麼不使用插件呢? –

+1

如果你會在snippet/fiddlr –

+0

中分享你的嘗試會更好如果「它(我認爲)是因爲add類只能在窗口滾動中工作。」是真的,只需在文檔準備就緒時添加您的課程即可。你已經實現了這樣的功能,只需找到你想添加課程的元素,然後完成你的工作。在$(window).scroll()之前使用$(your_selector).addClass('showme');'' – Grynets

回答

1

追加scroll觸發的代碼:

$(document).ready(function() { 
    $(window).scroll(function(){ 
     $('.fade').each(function(i){ 
      var bottom_of_object = $(this).position().top + ($(this).outerHeight()/2); 
      var bottom_of_window = $(window).scrollTop() + $(window).height(); 
      if(bottom_of_window > bottom_of_object){ 
       $(this).addClass('showme'); 
      } 
      if(bottom_of_window < bottom_of_object){ 
       $(this).removeClass('showme'); 
      } 
     }); 
    }); 

    $(window).scroll(); 
}); 

$(window).scroll()觸發上windowscroll事件 - docs

+0

非常感謝!這樣在平板電腦上也能很好地工作!並感謝您的文檔! –