您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
在 Microsoft Loop 网页中启用 Shift/Alt/Ctrl + 滚轮 横向滚动,专门处理 scriptor-paragraph 容器内的进度跟踪器表格
// ==UserScript== // @name 在 Microsoft Loop 进度跟踪器中启用 Shift + 滚轮横向滚动。 // @namespace https://loop.microsoft.com/ // @version 1.0 // @description 在 Microsoft Loop 网页中启用 Shift/Alt/Ctrl + 滚轮 横向滚动,专门处理 scriptor-paragraph 容器内的进度跟踪器表格 // @author SaltcoreYan // @license MIT // @match https://loop.cloud.microsoft.com/* // @match https://loop.microsoft.com/* // @match https://loop.cloud.microsoft/* // @run-at document-end // @grant none // ==/UserScript== (function () { 'use strict'; const MODIFIER = 'Shift'; // 可选: 'Shift' | 'Alt' | 'Ctrl' const SPEED = 1.0; // 滚动速度系数 function modifierPressed(e) { return MODIFIER === 'Shift' ? e.shiftKey : MODIFIER === 'Alt' ? e.altKey : MODIFIER === 'Ctrl' ? e.ctrlKey : false; } window.addEventListener('wheel', e => { if (!modifierPressed(e)) return; const delta = (e.deltaMode === 1 ? e.deltaY * 16 : e.deltaMode === 2 ? e.deltaY * window.innerHeight : e.deltaY) * SPEED; const sb = e.target.closest('[data-automation-id="table-custom-horizontal-scroll"]') || document.querySelector('[data-automation-id="table-custom-horizontal-scroll"]'); if (sb) { e.preventDefault(); e.stopPropagation(); const max = sb.scrollWidth - sb.clientWidth; const next = Math.max(0, Math.min(sb.scrollLeft + delta, max)); sb.scrollLeft = next; sb.dispatchEvent(new Event('scroll', { bubbles: true })); // 关键:触发 Loop 内部同步 } }, { passive: false, capture: true }); })();