スクロールするとdivが表示されるには
表示サンプル
コードの説明
- 幅800px、高さ120pxのdivを100px分スクロールすると表示するようにします。
- スクロールするとメニューが常に上に表示されるようにしたいときなどに用います。
HTML
<div id="scrollDiv"></div>
CSS
#scrollDiv {
display: none; /* 最初は表示させません */
position: fixed;
top: 100px;
width: 800px;
height: 120px;
background-color: #cccccc;
}
JavaScript
window.addEventListener('scroll', function() {
var scrollDiv = document.getElementById('scrollDiv');
var scrollPosition = window.pageYOffset || document.documentElement.scrollTop;
if (scrollPosition >= 100) {
scrollDiv.style.display = 'block';
} else {
scrollDiv.style.display = 'none';
}
});
仕組みの説明
- display:noneとして、最初は表示させません。
- JavaScriptでスクロールを検知します。
- scrollPosition >= 100で、100px以上の時に display:block、つまり表示とします。
- 逆に、満たさない、つまりまだ100px未満のときはdisplay:noneであり、非表示となります。
- none指定をしておくことで、上にスクロールしたときに、再度非表示となります。
- 100の値を変更することで表示のタイミングを変更できます。