divがスクロールされたときにdivが特定のポイントに達すると、スクリプトを実行しようとしています。固定されたナビゲーションがあり、ユーザーがウィンドウをスクロールすると、ナビに近づくとナビゲーション名が変更されます。 $(window).scroll関数を使用していますが、div位置を一度しかチェックせず、値を更新しません。 5〜10ピクセルごとにウィンドウのサイズをスクロールして確認する方法は、あまりにも多くのメモリ/処理を必要としません。 コードがで設定されている:http://jsfiddle.net/rexonms/hyMxq/スクロール時にdivのトップポジション値を取得する方法
HTML
<div id="nav"> NAVIGATION
<div class="message">div name</div>
</div>
<div id="main">
<div id="a">Div A</div>
<div id ="b"> Div B</div>
<div id ="c"> Div C</div>
</div>
CSS
#nav {
height: 50px;
background-color: #999;
position:fixed;
top:0;
width:100%;
}
#main{
margin-top:55px;
}
#a, #b, #c {
height:300px;
background-color:#ddd;
margin-bottom:2px;
}
SCRIPT
$(window).scroll(function() {
var b = $('#b').position();
$('.message').text(b.top);
if (b.top == 55) {
$('.message').text("Div B");
}
});
実際、スクロールの各インクリメントで 'b'の位置をチェックしていますが、ドキュメントに対する相対位置は決して変化しません。 @ j08691の答えを見てください。 – Shmiddty