2015-05-10 28 views
2

我想在用戶使用特定ID(通過鏈接或滾動)在頁面部分上時觸發某個功能。這是我現在擁有的,但它不起作用。檢查某個部分是否爲頁面

$(document).ready(function() { 
    if (window.location.pathname == '/index.html#contact') { 
     console.log('Viewing contact form'); 
    } 
}); 

更新:找到我在找什麼。這是我用過的:

$(window).bind('scroll', function() { 
    if($(window).scrollTop() >= $('#contact').offset().top - 50) { 
     $('.modal').modal('hide'); 
    } 
}); 

「 - 50」是爲了說明我的邊距和填充。當使用減號時,它'假設'你的部分在你的頁面上開始更高。對於較低的,使用加法。
「$('。modal')。modal('hide');」不需要。這是爲了在用戶位於頁面的#contact部分時隱藏引導模式。

+0

http://stackoverflow.com/questions/6271237/detecting-when-user-scrolls-to-bottom-of的重複-div-with-jquery –

+0

@Katerina:不,它似乎不是。該問題詢問如何知道用戶何時滾動到給定元素的底部,而這個問題想知道 - 據我所知, - 給定元素何時在頁面上可見,以及如何記錄,否則根據這些信息採取行動。 –

+0

它是一樣的,看:如果用戶看到的元素,他已經滾動到它)唯一的區別 - 你應該檢查此頁面載入用戶第一次滾動之前 –

回答

2

Javascript中的window.location屬性返回位置對象。如果要匹配特定的錨鏈接,則需要使用位置對象的hash屬性。以下是位置對象的所有屬性列表:http://www.w3schools.com/jsref/obj_location.asp

你可以檢查window.location.pathname+window.location.hash

$(document).ready(function() { 
    if (window.location.pathname+window.location.hash == '/index.html#contact') { 
     console.log('Viewing contact form'); 
    } 
}); 

因爲window.location.pathname不包括散列後的部分。

+1

不錯的修復。我用我正在使用的東西更新了這篇文章,但你的作品也是一樣的 –

0

HTML代碼

<div id="contact"> 

</div> 

你的JavaScript代碼

$("#contact").scroll(function() { 
/*do whatever you want*/ 
    }); 
+1

我認爲這是OP想要幫助的「*無論[他想要] *」部分。 –