【ピット回避指「難」】scrollTopスクロールバーは各ブラウザに対応
6856 ワード
すべての主流ブラウザでは、
IE 8以降のIEバージョンではこの属性はサポートされていないが、
pageXOffset
およびpageYOffset
のプロパティがサポートされています.IE 8以降のIEバージョンではこの属性はサポートされていないが、
document.documentElement.scrollLeft
およびdocument.documentElement.scrollTop
の属性を使用することができる.let scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop;
let oldTop = 0;
useEffect(() => {
if (haveScrollEvent !== false)
window.addEventListener("scroll", scroll);
}, [])
useEffect(() => {
return () => {
if (haveScrollEvent !== false)
window.removeEventListener("scroll", scroll);
}
}, [])
const scroll = e => {
let scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop;
if (scrollTop >= 420 && oldTop < 420) {
setBgColor('#202124');
} else if (scrollTop < 420) {
let state = {
};
if (oldTop >= 420)
state = {
bgColor: 'rgba(32,33,36,' + scrollTop / 420 + ')',
};
else
state = {
bgColor: 'rgba(32,33,36,' + scrollTop / 420 + ')',
};
setBgColor(state.bgColor);
}
oldTop = scrollTop;
};