原生JS实现回到顶部

239 阅读1分钟

无动画版

这里做了兼容处理

function toTop(){
    var ua = navigator.userAgent.toLowerCase();
    var isChrome = ua.indexOf("chrome") != -1;
    var isSafari = ua.indexOf("safari") != -1;

    if(!isChrome && isSafari){
        //Safari
        window.pageYOffset = 0
    }else{
        document.documentElement.scrollTop = 0
        document.body.scrollTop = 0
    }
}

带有动画的

如存在兼容问题,请按照上面的版本兼容下

function toTop(){
    loop()
    var top;
    var stop = false
    function loop(){
        if(top<1 || stop) {
            if(!stop) document.documentElement.scrollTop = 0
            return
        }
        top = document.documentElement.scrollTop
        document.documentElement.scrollTop = top*0.9
        setTimeout(()=>{
            loop()
        },15)
    }
    document.onscroll = function (e){
        if(top<document.documentElement.scrollTop){
            stop = true
        }
    }
}