您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Greasy Fork is available in English.
显示 回到顶部、前往底部 按钮
// ==UserScript== // @name 回到顶部、前往底部 // @version 0.2 // @description 显示 回到顶部、前往底部 按钮 // @author BIGFA // @match *://*/* // @icon data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M11.9995 0.499512L16.9492 5.44926L15.535 6.86347L12.9995 4.32794V9.99951H10.9995L10.9995 4.32794L8.46643 6.86099L7.05222 5.44678L11.9995 0.499512ZM10.9995 13.9995L10.9995 19.6704L8.46448 17.1353L7.05026 18.5496L12 23.4995L16.9497 18.5498L15.5355 17.1356L12.9995 19.6716V13.9995H10.9995Z"></path></svg> // @noframes // @license MIT // @grant none // @namespace http://greasyfork.icu/users/1445135 // ==/UserScript== (function() { 'use strict'; // 在页面加载完成后延迟执行 main_ 函数 if (document.readyState === "complete" || (document.readyState !== "loading" && !document.documentElement.doScroll)) { setTimeout(() => main_(), 1000); } else { document.addEventListener("DOMContentLoaded", function () { setTimeout(() => main_(), 1000) }); } // 主函数,创建按钮并使用 window 作为滚动目标 function main_() { let scrollElement = window; // 统一使用 window 作为滚动目标 createButtonToTop(scrollElement); createButtonToBottom(scrollElement); } // 滚动到顶部的函数 function scrollToTop(element) { if (element === window) { window.scrollTo({ top: 0, behavior: 'smooth' }); } else { element.scrollTo({ top: 0, behavior: 'smooth' }); } } // 滚动到底部的函数 function scrollToBottom(element) { if (element === window) { window.scrollTo({ top: document.documentElement.scrollHeight, behavior: 'smooth' }); } else { element.scrollTo({ top: element.scrollHeight, behavior: 'smooth' }); } } // 创建“回到顶部”按钮 function createButtonToTop(scrollElement) { const btn = document.createElement('div'); btn.innerHTML = '<svg width="50" height="50" viewBox="0 0 24 24" fill="currentColor"><title>回到顶部(右键隐藏该按钮)</title><path d="M12 2C17.52 2 22 6.48 22 12C22 17.52 17.52 22 12 22C6.48 22 2 17.52 2 12C2 6.48 6.48 2 12 2ZM13 12H16L12 8L8 12H11V16H13V12Z"></path></svg>'; btn.style.color = 'rgba(0,0,0,0.2)'; // 默认透明度20% btn.style.position = 'fixed'; btn.style.right = '50px'; btn.style.bottom = '55px'; btn.style.cursor = 'pointer'; btn.style.background = 'transparent'; btn.style.width = '50px'; btn.style.height = '50px'; btn.style.transition = 'color 0.3s ease, transform 0.3s ease'; // 添加过渡效果 btn.style.zIndex = '9999'; // 设置高 z-index 值,确保在最上层 btn.addEventListener('mouseover', () => { btn.style.color = 'rgba(0,0,0,0.9)'; // 悬停时透明度90% btn.style.transform = 'scale(1.1)'; // 放大10% }); btn.addEventListener('mouseout', () => { btn.style.color = 'rgba(0,0,0,0.2)'; // 恢复透明度20% btn.style.transform = 'scale(1)'; // 恢复原始大小 }); btn.onclick = () => scrollToTop(scrollElement); btn.oncontextmenu = (e) => { e.preventDefault(); btn.style.display = 'none'; }; document.body.appendChild(btn); } // 创建“前往底部”按钮 function createButtonToBottom(scrollElement) { const btn = document.createElement('div'); btn.innerHTML = '<svg width="50" height="50" viewBox="0 0 24 24" fill="currentColor"><title>前往底部(右键隐藏该按钮)</title><path d="M12 2C17.52 2 22 6.48 22 12C22 17.52 17.52 22 12 22C6.48 22 2 17.52 2 12C2 6.48 6.48 2 12 2ZM13 12V8H11V12H8L12 16L16 12H13Z"></path></svg>'; btn.style.color = 'rgba(0,0,0,0.2)'; // 默认透明度20% btn.style.position = 'fixed'; btn.style.right = '50px'; btn.style.bottom = '5px'; btn.style.cursor = 'pointer'; btn.style.background = 'transparent'; btn.style.width = '50px'; btn.style.height = '50px'; btn.style.transition = 'color 0.3s ease, transform 0.3s ease'; // 添加过渡效果 btn.style.zIndex = '9999'; // 设置高 z-index 值,确保在最上层 btn.addEventListener('mouseover', () => { btn.style.color = 'rgba(0,0,0,0.9)'; // 悬停时透明度90% btn.style.transform = 'scale(1.1)'; // 放大10% }); btn.addEventListener('mouseout', () => { btn.style.color = 'rgba(0,0,0,0.2)'; // 恢复透明度20% btn.style.transform = 'scale(1)'; // 恢复原始大小 }); btn.onclick = () => scrollToBottom(scrollElement); btn.oncontextmenu = (e) => { e.preventDefault(); btn.style.display = 'none'; }; document.body.appendChild(btn); } })();