您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Hands-free reading! Press Alt+X to start scrolling, then Alt+Up/Down to adjust speed. Escape/Space/Enter to stop scrolling.
当前为
// ==UserScript== // @name Universal Auto Scroll // @version 1.0 // @namespace MedX-AA // @author MedX // @license MIT // @description Hands-free reading! Press Alt+X to start scrolling, then Alt+Up/Down to adjust speed. Escape/Space/Enter to stop scrolling. // @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAABGUlEQVRoge2ZP0oDQRSG3yqFgoWCoVChUIXCoVAoFArFj7AoVAoVChUKBQKBYKFuwwF4gPQEHxBUUVRCEIIgL6EpUuvJ2kZnprM6O+c77xztycmNh+Gm10ea/LG5M9wlbSt0/ZPxXGtzLTZ/O4EvieIfUBeGm5v3U21dDUEbmBr8LUIuCp3t4GJwL/DngJQFhEfx1y3xks8G73K2lHKpxpq/mXwn4IEBL+oV1YfwHYpW9yFzFVqcmB9yNtRjLKKC8dp/ybA1lVXl1/MAVlRzNi33lQ8SkCeKShpJ2ryOYfQPSdLpIUKHhdfYXga7iWqODoIoNQF+b+EYOSuGpD9HI0U3EBcFRtdA/kXUwMiurYlwR/U8VjMvexqqkJ0APgXAhFvYGjAcwp7UXox+B6U82NwGbEBWAHwApBC8BV8s2Aa+d06fH7+nKpmKPAFcmgCebGfLK6lYXoAHUvntrXoPnFjP3h19TIADymtVYcDKAEeyt7Cz/kR5nXRAO2gZHRsAi8shdAa6DaQotNcZY1HUMbkuBajhffULNYFbJfhntZ+3NBM9D8KZNLjHQDpPywJK51frfWgLlmce/M/GUbzzd58B9wAIcX0tsBtAAAAAElFTkSuQmCC // @grant none // @include * // ==/UserScript== var isScrolling = false; // Track if auto-scroll is active var scrollSpeed = 0; var initialSpeed = 30; var lastTime; // Key Codes var DOM_VK_X = 88; var DOM_VK_UP = 38; var DOM_VK_DOWN = 40; var DOM_VK_ESCAPE = 27; var DOM_VK_SPACE = 32; var DOM_VK_ENTER = 13; window.addEventListener('keydown', handleKeyPress, true); function handleKeyPress(e) { // Block Alt + X if Ctrl or Shift is held if (e.altKey && !e.ctrlKey && !e.shiftKey && e.keyCode === DOM_VK_X) { startAutoScroll(); e.preventDefault(); } // Only allow Alt + Up/Down after Alt + X was pressed if (isScrolling) { if (e.altKey && !e.ctrlKey && !e.shiftKey && e.keyCode === DOM_VK_UP) { scrollSpeed -= 10; e.preventDefault(); } if (e.altKey && !e.ctrlKey && !e.shiftKey && e.keyCode === DOM_VK_DOWN) { scrollSpeed += 10; e.preventDefault(); } } // Stop scrolling with Escape, Space, or Enter if (e.keyCode === DOM_VK_ESCAPE || e.keyCode === DOM_VK_SPACE || e.keyCode === DOM_VK_ENTER) { stopAutoScroll(); e.preventDefault(); } } function startAutoScroll() { if (!isScrolling) { isScrolling = true; scrollSpeed = initialSpeed; lastTime = performance.now(); requestAnimationFrame(autoScroll); } } function stopAutoScroll() { isScrolling = false; scrollSpeed = 0; } function autoScroll(timestamp) { if (!isScrolling) return; var elapsed = timestamp - lastTime; var jumpPixels = (scrollSpeed * elapsed) / 1000; window.scrollBy(0, jumpPixels); lastTime = timestamp; requestAnimationFrame(autoScroll); }