您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
为网页添加滚动条。找不到原作者。年久失修,修修补补再上岗,顺便改了很多不合理的地方。
当前为
- // ==UserScript==
- // @name 滚动条
- // @namespace https://greasyfork.org/zh-CN/users/954189
- // @version 2.1
- // @description 为网页添加滚动条。找不到原作者。年久失修,修修补补再上岗,顺便改了很多不合理的地方。
- // @author ???
- // @run-at document-end
- // @license MIT
- // @match *
- // ==/UserScript==
- function createScrollBar() {
- var isScrollBar,startY,endY,whereScroll,clearScrollBar;
- var clientHeight = document.documentElement.scrollHeight;
- var scrollTop = document.documentElement.scrollTop;
- isScrollBar = document.getElementById('theScrollBar');
- if (isScrollBar) {
- isScrollBar.parentNode.removeChild(isScrollBar);
- };
- var theScrollBar = document.createElement("div");
- theScrollBar.id = "theScrollBar";
- 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;
- var theTop = endY - startY;
- this.style.top = theTop + "px";
- thePageTop = theTop * (document.documentElement.scrollHeight - document.documentElement.clientHeight) / (document.documentElement.clientHeight - this.offsetHeight);
- window.scrollTo(0,thePageTop);
- },true);
- theScrollBar.addEventListener("touchend",function (e) {
- e.stopPropagation();
- e.preventDefault();
- clearScrollBar = setTimeout(function () {
- if ( whereScroll ) {
- clearInterval(whereScroll);
- };
- that.style.display = "none";
- },2000);
- return clearScrollBar;
- },true);
- theScrollBar.innerHTML = "▲<br>▼";
- theScrollBar.setAttribute("style","font-size:2vw ;width:7vw ;line-height:6vw ;text-align:center ;background-color:rgba(255,255,255,0.7) ;box-shadow:0px 1px 5px rgba(0,0,0,0.2) ;color:#000 ;position:fixed ;top:" + scrollTop + "px;right:1vw ;z-index:999999 ;transform: translateZ(0);border-radius:1vw ");
- theScrollBar.style.display = 'none'
- document.body.appendChild(theScrollBar);
- document.ontouchmove = function () {
- if ( clearScrollBar ) {
- clearTimeout( clearScrollBar );
- };
- var scrollBar = document.getElementById('theScrollBar');
- if (document.body.scrollHeight < 2 * window.innerHeight) {
- theScrollBar.style.display = 'none';
- }
- else {
- scrollBar.style.display = "block";
- }
- if ( !whereScroll ) {
- whereScroll = requestAnimationFrame(updateScrollBarPosition);
- };
- };
- document.ontouchstart = function () {
- if ( whereScroll ) {
- cancelAnimationFrame(whereScroll);
- };
- whereScroll = requestAnimationFrame(updateScrollBarPosition);
- };
- var clearScrollBar;
- window.onscroll = function() {
- if (clearScrollBar) {
- clearTimeout(clearScrollBar);
- }
- clearScrollBar = setTimeout(function() {
- var scrollBar = document.getElementById('theScrollBar');
- scrollBar.style.display = "none";
- }, 2000);
- }
- function updateScrollBarPosition() {
- var scrollBar = document.getElementById('theScrollBar');
- var nowScrollTop = document.documentElement.scrollTop;
- var scrollBarHeight = scrollBar.offsetHeight;
- var maxTop = document.documentElement.clientHeight - scrollBarHeight;
- var theTop = ( nowScrollTop / (document.documentElement.scrollHeight - document.documentElement.clientHeight) ) * maxTop;
- scrollBar.style.top = theTop + "px";
- whereScroll = requestAnimationFrame(updateScrollBarPosition);
- }
- };
- createScrollBar();