HerrC / Click To Top

// ==UserScript==
// @name        Click To Top
// @namespace    http://tampermonkey.net/
// @version      0.43
// @description  click the arrow-up pic to jump to the top of page.
// @author       kilin
// @include      *
// @match        *
// @grant        none
// @name:zh-CN       点击返回顶部
// @description:zh-CN  点击向上的箭头按钮返回到页面顶部
// @license MIT
// ==/UserScript==

(function(){window.onload = function(){
    console.log('DOM already loaded.');
    if(window.top == window.self){
        var aNode = document.createElement('ja');
        aNode.href = 'javascript:;';
        aNode.id = 'click-to-top';
        aNode.title = 'Click it to go to the top';
        var availHeight = window.screen.availHeight; // 获取可用高度
        var css = '#click-to-top{ display:none; position: fixed; right: 5%; bottom: 20%; opacity: 0.4; z-index: 9999; } #click-to-top:hover{ position: fixed; right: 5%; bottom: 20%; opacity: 1; z-index: 9999; }';
        //滚出一屏以后才显示返回顶部按钮
        window.onscroll = function(){
            var curPos = (document.documentElement.scrollTop == 0) ? document.body.scrollTop : document.documentElement.scrollTop; //document.documentElement.scrollTop; //preparation for hack (document.documentElement.scrollTop == 0) ? document.body.scrollTop : document.documentElement.scrollTop; 
            if(curPos > availHeight){
                aNode.style.display = 'block';
            }else {
                aNode.style.display = 'block';
            }
        };
        //图片相关
        var img = document.createElement('img');
        img.src = 'https://i.ibb.co/Tbnn50p/9d7d39486a92b9af48800c5b2229f816-full.png';
        img.style = 'width: 48px; height: 48px;';
        //样式相关
        var style = document.createElement('style');
        if (style.styleSheet) {
            style.styleSheet.cssText = css;
        } else {
            style.appendChild(document.createTextNode(css));
        }
        document.getElementsByTagName('head')[0].appendChild(style);
        aNode.append(img);
        aNode.addEventListener('click', function(){
            document.body.scrollIntoView();
            /*var timer = setInterval(function(){
            document.documentElement.scrollTop -= 500;
                if(document.documentElement.scrollTop < 100){
                    clearInterval(timer);
                }
            }, 50);
        }, true);*/
        });
        var eBody = document.querySelector('body');
        eBody.append(aNode);
    }
};})();