簡而言之: 我正在開發一個項目,並且希望在屏幕上顯示特定的div時運行一個函數。如何使jquery函數在屏幕上顯示div時運行
詳細信息: 我的模板中有一個滾動到頂部按鈕固定在屏幕的右下角。當有人向下滾動到頁腳時,我想隱藏該按鈕。 意思是當有人向下滾動到頁腳並且頁腳的頂部邊框顯示在屏幕上時,我想要一個可以隱藏到頂部按鈕的功能。
請幫我出這個問題...
簡而言之: 我正在開發一個項目,並且希望在屏幕上顯示特定的div時運行一個函數。如何使jquery函數在屏幕上顯示div時運行
詳細信息: 我的模板中有一個滾動到頂部按鈕固定在屏幕的右下角。當有人向下滾動到頁腳時,我想隱藏該按鈕。 意思是當有人向下滾動到頁腳並且頁腳的頂部邊框顯示在屏幕上時,我想要一個可以隱藏到頂部按鈕的功能。
請幫我出這個問題...
$(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();
}
});
});
初始化窗口監視其滾動
$(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
}
我想你需要在身體上註冊一個滾動監聽器,檢查頁腳是否在視圖中,如果是,則執行隱藏。事情是這樣的......的
$(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();
}
}
可能重複[jQuery的 - 檢查元素scroling後可見](http://stackoverflow.com/questions/487073/jquery-check-if-element-滾動後可見) –
如果您選擇通過附加滾動事件來使用其中一個答案,請確保您也使用或實施了節流,或者您可能會看到由於事件處理程序執行(可能)而導致某些客戶端性能下降,比你想要的要多得多 –
我在JsFiddle中做了這個例子,但我看到它被回答了: http://jsfiddle.net/e3xLd/ – zehelvion