次のコードは、このような状況を処理する方法について少し説明します。基本的にあなたが使用して行うことができますスクロールバーの位置を取得したいとしている。
document.documentElement.scrollTop
また、あなたは存在を探している要素は、我々の場合には、それは.part1
と.part2
ある範囲を取得したいです。この範囲を得るには、制限の始まりとしてoffsetTop
を使用し、終了を決定するにはoffsetTop + clientHeight
を使用します。
ウィンドウのスクロールイベントを追跡する必要があります。
次の例では、ジェネリックです:
$(window).scroll(function(e) {
if (document.documentElement.scrollTop > 0
&& document.documentElement.scrollTop < $('.part2').offset().top) {
$('div').html("At part1")
} else {
$('div').html("At part2")
}
});
JSFiddle
同様に、あなたはモジュール性を少ししたい場合:
$(window).scroll(function(e) {
let watchList = ['part1', 'part2', 'part3'];
let scrollTop = document.documentElement.scrollTop;
for (var classname of watchList) {
let el = document.getElementsByClassName(classname)[0];
if (scrollTop > el.offsetTop &&
scrollTop < el.offsetTop + el.clientHeight) {
$('div').html("At <strong>"+classname+"</strong>");
}
}
});
JSFiddle
可能性がに無限ですが続行し、これをより便利にするしかし、私はそれをあなたに任せます。
可能な複製(https://stackoverflow.com/questions/4373667/get-div-tag-scroll-position- [JavaScriptを使用してのdivタグのスクロール位置を取得します] using-javascript) – Paul