您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Hands-free reading! Press Alt+X to start/increase 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/increase scrolling, then Alt+Up/Down to adjust speed. Escape/Space/Enter to stop scrolling. // @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAABGUlEQVR4nO3VsS4EURQG4E9oRCEh0ZDQi3gDjV7lHXTeAYVo9gl0ahregEapoKEh0SFRbVbIyiSjEYnd2TtzZ5PzJSeZYjbzn/2LQwghlSN8oP/PFO8caqHeAOF/pni3dfpDTuvEArlFA7lFA7lFA7lFA7lFA7lFA7lFA7lFA7m1uoE9dCuErDrd8pvJvDYYvl/OS8oFOhkW6KRcYBKnDYY/x5TEpnHZQPhrzKjJLG5qDH+LOTVbxGMN4Z+xrCGreEsY/h3rGraR6Db0sCmTLXyOEP4L2zLbGWGBXS1xUCH8vhaZwPEQ4U/K37RKca3PBgh/UceVTXmtr3Jd2VTmcfdH+HssGBNLePp1ZVeMmTU8lP988RxCkN43yek7CExEuggAAAAASUVORK5CYII= // @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); } else { // If already scrolling, increase speed scrollSpeed += 10; } } 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); }