您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Hides scrollbars globally but keeps scrolling functionality
- // ==UserScript==
- // @name Scrollbar Hider
- // @description Hides scrollbars globally but keeps scrolling functionality
- // @author SSL-ACTX
- // @version 1.1.0
- // @license MIT
- // @grant none
- // @run-at document-start
- // @match *://*/*
- // @namespace https://greasyfork.org/users/1365732
- // ==/UserScript==
- (function() {
- 'use strict';
- // CSS rules to hide scrollbars but retain scrolling functionality
- const scrollbarHiderCSS = `
- /* Remove WebKit-based browsers' scrollbars */
- *::-webkit-scrollbar {
- width: 0;
- height: 0;
- }
- /* Hide scrollbars in Firefox, IE, and Edge */
- * {
- scrollbar-width: none;
- -ms-overflow-style: none;
- }
- `;
- // Key combination to toggle scrollbars (default: Ctrl + Alt + M)
- const TOGGLE_KEY_COMBINATION = {
- ctrlKey: true,
- altKey: true,
- key: 'm' // Key to toggle (lowercase, but we'll handle both cases)
- };
- // Flag to track if scrollbars are currently hidden
- let scrollbarsHidden = false;
- /**
- * Injects the provided CSS into the document.
- */
- const injectCSS = (cssRules) => {
- try {
- const styleElement = document.createElement('style');
- styleElement.id = 'scrollbar-hider-style';
- styleElement.type = 'text/css';
- styleElement.textContent = cssRules;
- document.head.appendChild(styleElement);
- } catch (error) {
- console.error('Failed to inject CSS:', error);
- }
- };
- /**
- * Removes the injected CSS.
- */
- const removeCSS = () => {
- try {
- const styleElement = document.getElementById('scrollbar-hider-style');
- if (styleElement) {
- styleElement.remove();
- }
- } catch (error) {
- console.error('Failed to remove CSS:', error);
- }
- };
- /**
- * Toggles the visibility of scrollbars.
- */
- const toggleScrollbars = () => {
- if (scrollbarsHidden) {
- removeCSS();
- } else {
- injectCSS(scrollbarHiderCSS);
- }
- scrollbarsHidden = !scrollbarsHidden;
- // Save preference in localStorage
- localStorage.setItem('scrollbarsHidden', scrollbarsHidden);
- };
- /**
- * Adds event listener for keypress to toggle scrollbars.
- */
- const addToggleListener = () => {
- document.addEventListener('keydown', (event) => {
- if (event.ctrlKey === TOGGLE_KEY_COMBINATION.ctrlKey &&
- event.altKey === TOGGLE_KEY_COMBINATION.altKey &&
- (event.key === TOGGLE_KEY_COMBINATION.key || event.key === TOGGLE_KEY_COMBINATION.key.toUpperCase())) {
- event.preventDefault();
- toggleScrollbars();
- }
- });
- };
- // Initialize the script
- scrollbarsHidden = localStorage.getItem('scrollbarsHidden') === 'true';
- if (scrollbarsHidden) {
- injectCSS(scrollbarHiderCSS);
- }
- addToggleListener();
- })();