您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
为网页添加滚动条。找不到原作者。年久失修,修修补补再上岗,顺便改了很多不合理的地方。
// ==UserScript== // @name 滚动条 // @namespace https://gf.qytechs.cn/zh-CN/users/954189 // @version 2.1.2 // @description 为网页添加滚动条。找不到原作者。年久失修,修修补补再上岗,顺便改了很多不合理的地方。 // @author ??? // @run-at document-end // @license MIT // @match *://*/* // ==/UserScript== function createScrollBar() { let isScrollBar; let whereScroll; let clearScrollBar; const clientHeight = document.documentElement.scrollHeight; const scrollTop = document.documentElement.scrollTop; isScrollBar = document.getElementById('theScrollBar'); if (isScrollBar) { isScrollBar.parentNode.removeChild(isScrollBar); }; const theScrollBar = document.createElement("div"); theScrollBar.id = "theScrollBar"; theScrollBar.innerHTML = "▲<br>▼"; theScrollBar.addEventListener("touchstart",function (e) { e.stopPropagation(); e.preventDefault(); if (clearScrollBar) { clearTimeout(clearScrollBar); }; return startY = e.changedTouches[0].clientY - parseFloat(this.style.top); },true); theScrollBar.addEventListener("touchmove", function(e) { e.stopPropagation(); e.preventDefault(); if (clearScrollBar) { clearTimeout(clearScrollBar); }; endY = e.changedTouches[0].clientY; const theTop = endY - startY; this.style.top = theTop + "px"; const thePageTop = theTop * (document.documentElement.scrollHeight - document.documentElement.clientHeight) / (document.documentElement.clientHeight - this.offsetHeight); window.scrollTo(0, thePageTop); whereScroll = window.requestAnimationFrame(updateScrollBarPosition); }, true); theScrollBar.addEventListener("touchend",function (e) { e.stopPropagation(); e.preventDefault(); clearScrollBar = setTimeout(function () { if (whereScroll) { clearInterval(whereScroll); }; setTimeout(function() { scrollBar.style.display = "none"; }, 200); scrollBar.style.opacity = "0"; },1800); return clearScrollBar; },true); theScrollBar.setAttribute("style","font-size:2vw ;width:7vw ;line-height:6vw ;text-align:center ;background-color:rgba(255,255,255) ;opacity: 0.8 ;box-shadow:0px 1px 5px rgba(0,0,0,0.2) ;color:#000 ;position:fixed ;top:" + scrollTop + "px;right:1vw ;z-index:999999 ;transition: opacity 0.2s ease-in-out;transform: translateZ(0);border-radius:1vw "); theScrollBar.style.display = 'none'; document.body.appendChild(theScrollBar); window.onscroll = function() { if (clearScrollBar) { clearTimeout(clearScrollBar); } clearScrollBar = setTimeout(function() { const scrollBar = document.getElementById('theScrollBar'); setTimeout(function() { scrollBar.style.display = "none"; }, 200); scrollBar.style.opacity = "0"; }, 1800); } function updateScrollBarPosition() { const scrollBar = document.getElementById('theScrollBar'); const nowScrollTop = document.documentElement.scrollTop; const scrollBarHeight = scrollBar.offsetHeight; const maxTop = document.documentElement.clientHeight - scrollBarHeight; const theTop = ( nowScrollTop / (document.documentElement.scrollHeight - document.documentElement.clientHeight) ) * maxTop; scrollBar.style.top = theTop + "px"; whereScroll = window.requestAnimationFrame(updateScrollBarPosition); } document.ontouchmove = function () { if ( clearScrollBar ) { clearTimeout(clearScrollBar); }; const scrollBar = document.getElementById('theScrollBar'); if (document.body.scrollHeight < 2 * window.innerHeight) { setTimeout(function() { scrollBar.style.display = "none"; }, 200); scrollBar.style.opacity = "0"; } else { setTimeout(function() { scrollBar.style.display = "block"; }, 200); scrollBar.style.opacity = "0.8"; } if (!whereScroll) { whereScroll = requestAnimationFrame(updateScrollBarPosition); }; }; document.ontouchstart = function () { if (whereScroll) { cancelAnimationFrame(whereScroll); }; whereScroll = requestAnimationFrame(updateScrollBarPosition); }; }; createScrollBar();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址