ScrollTop не работает в IE - PullRequest
10 голосов
/ 18 июля 2011

У кого-нибудь есть идеи, почему 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 ]

19 голосов
/ 18 июля 2011

Попробуйте:

document.documentElement.scrollTop = x // where x is some integer
5 голосов
/ 18 октября 2011

Попробуйте это

window.scroll (0,0) // ось x, ось y

2 голосов
/ 18 июля 2011

Причина, по которой подобные вещи не работают в том или ином браузере, обычно связана с чем-то вроде:

window.document.body.scrollTop++;

Вы не можете просто сделать это, потому что некоторые браузеры имеют это значение в виде строки, например "5px", и некоторые имеют его как число.

0 голосов
/ 21 сентября 2018

Если вам это нужно для работы в IE и Edge:

document.body.scrollTop = x
...