ScrollTop не работает в IE
У кого-нибудь есть идеи, почему scrollTop не работает в IE?
Он хорошо работает в Chrome, и я не знаю, что такое Firefox. (Идея этого скрипта состоит в том, чтобы иметь страницу с автопрокруткой, которая сбрасывается, как только она достигает нижней части страницы)
function getheight() {
var myWidth = 0,
myHeight = 0;
if (typeof (window.innerWidth) == 'number') {
//Non-IE
myWidth = window.innerWidth;
myHeight = window.innerHeight;
} else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) {
//IE 6+ in 'standards compliant mode'
myWidth = document.documentElement.clientWidth;
myHeight = document.documentElement.clientHeight;
} else if (document.body && (document.body.clientWidth || document.body.clientHeight)) {
//IE 4 compatible
myWidth = document.body.clientWidth;
myHeight = document.body.clientHeight;
}
var scrolledtonum = window.pageYOffset + myHeight + 2;
var heightofbody = document.body.offsetHeight;
if (scrolledtonum >= heightofbody) {
document.body.scrollTop(0, 0);
}
}
window.onscroll = getheight;
function func() {
window.document.body.scrollTop++;
}
window.document.onmouseover = function () {
clearInterval(interval);
};
window.document.onmouseout = function () {
interval = setInterval(func, 20);
};
var interval = setInterval(func, 20);
4 ответа
Пытаться:
document.documentElement.scrollTop = x // where x is some integer
Причина, по которой подобные вещи не работают в том или ином браузере, обычно связана с чем-то вроде:
window.document.body.scrollTop++;
Вы не можете просто сделать это, потому что некоторые браузеры имеют это значение в виде строки, например, "5px", а некоторые - в виде числа.
Для решения EDGE необходимо установить scrollTop для свойства документа scrollingElement:
document.scrollingElement.scrollTop= x; // x is integer value
Но вы должны убедиться, что CSS в элементе HTML установил для переполнения значение по умолчанию (видимое):
html {
overflow: visible;
}
Если вам это нужно для работы в IE и Edge:
document.body.scrollTop = x