スクロール中だけ要素のスタイルを変える
2023/09/06 (水) - 00:00 CSSJavaScript
Webページ内をスクロールしてる最中は追従するバナーやページの先頭へ戻るボタンを非表示や半透明にして、スクロールが止まったら要素を表示させるみたいな実装をしたいとき。
例では、スクロール中はhtml要素にscrollというclass属性を与え、スクロール止まったらscrollのclass属性を削除するように実装した。
const html = document.getElementsByTagName('html')[0];
let timerID;
window.addEventListener('scroll',function(){
clearTimeout(timerID);
html.classList.add('scroll'); //スクロールしてるとき
timerID = setTimeout( function(){
html.classList.remove('scroll'); //スクロールが止まったとき
}, 200) ;
});
CSSでは以下のように実装すると良いと思う。
.pagetopBtn{
display: block; /*通常は表示*/
}
.scroll .pagetopBtn{
display: none; /*スクロール中は非表示*/
}
おしまい♥
おすすめ記事
- CSSのグラデーション(linear-gradient)はtransitionで色変化が出来ない
- clipboard.writeTextでクリップボードにテキストをコピーするときはhttpsで行う
- JavaScriptで雪を降らせる
- CSSでスクロールバーの色を変更する
- Reactでinput要素に入力した内容を反映
トラックバック & ピンバック
- この記事へのトラックバックURI:
- https://weblog.walk-life.me/scroll_style/trackback/