2011-10-17 57 views
0

簡而言之: 我正在開發一個項目,並且希望在屏幕上顯示特定的div時運行一個函數。如何使jquery函數在屏幕上顯示div時運行

詳細信息: 我的模板中有一個滾動到頂部按鈕固定在屏幕的右下角。當有人向下滾動到頁腳時,我想隱藏該按鈕。 意思是當有人向下滾動到頁腳並且頁腳的頂部邊框顯示在屏幕上時,我想要一個可以隱藏到頂部按鈕的功能。

請幫我出這個問題...

+0

可能重複[jQuery的 - 檢查元素scroling後可見](http://stackoverflow.com/questions/487073/jquery-check-if-element-滾動後可見) –

+1

如果您選擇通過附加滾動事件來使用其中一個答案,請確保您也使用或實施了節流,或者您可能會看到由於事件處理程序執行(可能)而導致某些客戶端性能下降,比你想要的要多得多 –

+0

我在JsFiddle中做了這個例子,但我看到它被回答了: http://jsfiddle.net/e3xLd/ – zehelvion

回答

2
$(document).ready(function() { 
    var footer = $("footer"); 
    var f_top = footer.position().top; 
     $(window).scroll(function() { 
      if ($(window).scrollTop() + $(window).height() >= f_top) { 
       footer.hide();   
      } 
      else{ 
       footer.show();   
      } 
     }); 
    }); 
1

初始化窗口監視其滾動

$(document).ready(function() { 
    $(window).scroll(function() { 
     // get the element that you want check scrolling on it 
     var off = $("your-selector").offset().top; 
     var top = $(window).scrollTop() + $(window).height(); 
     if (off <= top) { 
      // do your job 
      // for example you can call a function like: 
      my_method_to_invoke(); 
     } 
    }); 
}); 

的功能你要調用它:

function my_method_to_invoke() { 
    // TODO 
} 
0

我想你需要在身體上註冊一個滾動監聽器,檢查頁腳是否在視圖中,如果是,則執行隱藏。事情是這樣的......的

$(body).scroll(function() { 
scrollCheck(); 
}); 

var scrollCheck = function() { 
    var docTop, docBot, elemTop, elemBot; 

    docTop = $(window).scrollTop; 
    docBot = docTop + $(window).height(); 
    elemTop = $(<footer element>).offset().top; 
    elemBot = elemTop + $(<footer element>).height(); 

    if ((elemBottom >= docTop) && (elemTop <= docBot)) { 
     $(<button element).hide(); 
    } 
} 
相關問題