2016-05-06 9 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

あなたは値が0あるとき、それ以外の場合は、ページのロード時に一度だけ実行され、スクロールハンドラ内console.logラインを配置する必要があります。 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/ –

関連する問題