Back to Top figuccio

Add button to return top of each page.

目前为 2019-05-09 提交的版本。查看 最新版本

// ==UserScript==
// @name           Back to Top figuccio
// @author         figuccio
// @namespace https://gf.qytechs.cn/users/237458
// @description    Add button to return top of each page.
// @version        0.6
// @include        *
// ==/UserScript==
// Create black to top.
	var a = document.createElement('span');
	a.innerHTML = "🡹";
	var c = "position:fixed;text-align:right;right:170px;bottom:2px;z-index:50000;";
	c+='color:red!important;background-color:green;border:2px solid blue;padding:6px 15px;font-size:11pt;cursor:pointer;font-weight:bold;text-decoration:none;border-top-right-radius:12px;border-top-left-radius:12px;box-shadow:0 0 6px rgba(0,0,0,.5);';
	a.style.cssText = c;
	a.addEventListener('click', function(){ window.scrollTo(0,0); }, false);
document.body.appendChild(a);
//pulsante in basso
var newHeight = document.body.scrollHeight;
var b = document.createElement('span');
b.addEventListener('click', function(){ window.scrollTo(0,newHeight); }, false);
document.body.appendChild(b);
var lastScrollY=0;
(function gotop(){
	var diffY;
        diffY = document.documentElement.scrollTop+document.body.scrollTop;
	percent=.1*(diffY-lastScrollY);
	if(percent>0)percent=Math.ceil(percent);
	else percent=Math.floor(percent);
	lastScrollY=lastScrollY+percent;
	if(lastScrollY>500){
	a.style.display="block";b.style.display="block";
	} else {
    b.style.display="block";a.style.display="none";
	}
        setTimeout(gotop,1);
})();

              //scorrimento pagine al passaggio mouse
function scrollPlus() {
    //Personalizzazione

    //vai direttamente alla pagina in alto / in basso
    var goTopButton = 1;

    // Mostra la casella dell'indicatore di scorrimento o no, "1" per mostrare
    var scrollShowIndicator = 1;

    //Imposta la larghezza della zona sensibile al scorrimento, "100" come larghezza completa, "10" come un decimo.

    var VScrollonWidth = 3;

    //Imposta lo sfondo della barra dell'indicatore
    var IndicBarBG = "violet";

    //Imposta l'altezza dello "spessore" della barra dell'indicatore
    var IndicBarH = 10;

    //Scrivi qui la larghezza della barra di scorrimento (impostata nelle proprietà dello schermo) per la massima precisione.
    var ScrollbarWidth = 10;

    //Imposta un trigger per l'attivazione, 1-none, 2-Ctrl, 3-middle 100px range
    var activateCond = 1;

    //La personalizzazione finisce
    var scrollStartSWTM = -1;

    var factor;
    var b = null;
    var VScrollOn = 0;
    var delayed = 0;

    document.addEventListener('mousemove', function (event) {
        if (document.body.contentEditable == "true") {
            return;
        }

        var dheightMax = Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);
        var cwidthMax = Math.max(document.body.clientWidth, document.documentElement.clientWidth) - ScrollbarWidth;
        var cwinHeight = window.innerHeight;
        var scrollboxHeight = window.innerHeight - 2 * ScrollbarWidth;

        if (dheightMax > cwinHeight) {
            if (event.clientX > cwidthMax) {
                switch (activateCond) {
                    case 1:
                        VScrollOn = 1;
                        break;
                    case 2:
                        if (event.ctrlKey)
                            VScrollOn = 1;
                        break;
                    case 3:
                        if (event.clientY > cwinHeight / 2 - 50 && event.clientY < cwinHeight / 2 + 50)
                            VScrollOn = 1;
                        break;
                }
            }

            if (event.clientX < ((1 - VScrollonWidth / 100) * cwidthMax)) VScrollOn = 0;
        }

        if (VScrollOn && ! delayed) {
            setTimeout(function () {
                if (VScrollOn) {
                    delayed = 1;
                }
                else {
                    delayed = 0;
                }
            }, 200);

            return;
        }

        if (VScrollOn) {
            if (scrollShowIndicator == 1) make_boxes();

            if (scrollStartSWTM != -1) {
                factor = (event.ctrlKey) ? dheightMax / scrollboxHeight / 2 : dheightMax / scrollboxHeight;
                if (b) {
                    b.style.top = (event.clientY - IndicBarH / 2) + 'px';
                }

                var delta = factor * (event.clientY - scrollStartSWTM);
                document.body.scrollTop += delta;
                document.documentElement.scrollTop += delta;
                if (event.clientY + 20 > cwinHeight) {
                    document.body.scrollTop += (factor * 10);
                    document.documentElement.scrollTop += (factor * 10);
                }
                if (event.clientY > 0 && event.clientY < 20) {
                    document.body.scrollTop -= (factor * 10);
                    document.documentElement.scrollTop -= (factor * 10);
                }
            }
            scrollStartSWTM = event.clientY;
        }
        else {
            scrollStartSWTM = -1;
            if (b) setTimeout(function () { b.style.top = -200 + 'px'; }, 200);

            delayed = 0;
        }
    }, false);

    document.addEventListener('click', function () { VScrollOn = 0; }, false);

    function make_boxes() {
        if (!b) {
            b = document.createElement("div");
            b.setAttribute("id", "IndicatorBox");
            b.setAttribute("style", "width:" + VScrollonWidth + "%;background:" + IndicBarBG + ";min-height:" + IndicBarH + "px;text-align:center;position: fixed; top: -40px; right: 0;overflow: hidden; z-index: 102400;font-family:Arial !important;cursor:n-resize;cursor:ns-resize;");
            document.body.appendChild(b);
            b.addEventListener('click', function () { VScrollOn = 0; }, false);
            return true;
        }
    }
}

if (!(window !== window.top || window.document.title === "")) {
    setTimeout(scrollPlus, 100);
}

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址