2016-05-06 60 views
0

我試圖計算我的h1標籤在滾動上的位置。我在網上找到了這個代碼,它似乎對我有用。但是,問題是,我打印滾動函數內的值,我可以得到值。但是,當我將該值賦給變量時,它總是顯示0.我不知道它爲什麼會發生?如何將局部變量分配給Jquery中的正常變量

var my_offset = 0; 
$(window).scroll(function() { 
    var $h1 = $("h1"); 
    var window_offset = $h1.offset().top - $(window).scrollTop(); 
    my_offset = window_offset; 
}); 
console.log(my_offset); 
+1

確定的功能觸發?把一個alert()調用放入它來檢查。 – Oisin

回答

3

你需要把console.log滾動處理,否則是在頁面的加載,如果值是0只運行一次。如果要保留my_offset變量的範圍,則還應該刪除scroll事件處理程序中的var。試試這個:

var my_offset = 0; 
$(window).scroll(function() { 
    my_offset = $("h1").offset().top - $(window).scrollTop(); 
    console.log(my_offset); 
}); 

Working example

+0

我想要滾動功能以外的偏移值。 – user15837

+0

它在滾動功能之外可用。您只需在*滾動已用於設置值後檢索值*。 –

+0

下面是一個例子:https://jsfiddle.net/55f6qde1/1/ –