您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
优化微信读书网页版宽屏显示效果,并在向下滚动时自动隐藏顶部栏和控制栏,向上滚动时显示。
// ==UserScript== // @name 微信读书宽屏优化与滚动隐藏顶栏 // @match https://weread.qq.com/web/reader/* // @grant none // @version 0.1 // @author bingo8670 // @description 优化微信读书网页版宽屏显示效果,并在向下滚动时自动隐藏顶部栏和控制栏,向上滚动时显示。 // @namespace https://greasyfork.org/users/1398309 // ==/UserScript== (function () { 'use strict'; // --- 功能 1: 宽屏优化 --- // 尝试应用宽屏样式的函数 function tryApplyWideScreen() { const content = document.querySelector('.app_content'); const topbar = document.querySelector('.readerTopBar'); if (content) { // 将内容区域的最大宽度调整为您希望的宽度 content.style.maxWidth = '1100px'; } if (topbar) { // 确保顶栏正常显示 topbar.style.display = 'flex'; } } // 初始延迟执行,确保页面基本元素加载 setTimeout(tryApplyWideScreen, 1000); // 使用 MutationObserver 监听 DOM 变化,以应对页面内容的动态加载 // 这确保了即使在切换章节或重新加载UI时,样式也能被正确应用 const observer = new MutationObserver(tryApplyWideScreen); observer.observe(document.body, { childList: true, subtree: true }); // --- 功能 2: 滚动时自动隐藏/显示顶栏和侧边栏 --- // 注入CSS以实现平滑的过渡效果 function addGlobalStyle(css) { const head = document.head || document.getElementsByTagName('head')[0]; if (head) { const style = document.createElement('style'); style.type = 'text/css'; style.innerHTML = css; head.appendChild(style); } } addGlobalStyle(` /* 为顶栏和侧边控制栏添加过渡动画 */ .readerTopBar, .readerControls { transition: opacity 0.3s ease-in-out, visibility 0.3s ease-in-out !important; } /* 定义隐藏状态的样式 */ .weread-auto-hidden { opacity: 0 !important; visibility: hidden !important; } `); let lastScrollTop = 0; // 监听整个窗口的滚动事件 window.addEventListener('scroll', function() { const scrollTop = window.scrollY || document.documentElement.scrollTop; const topBar = document.querySelector('.readerTopBar'); const controls = document.querySelector('.readerControls'); // 如果元素尚未加载,则不执行任何操作 if (!topBar || !controls) { return; } // 向下滚动超过一定距离时隐藏 // scrollTop > lastScrollTop 是判断向下滚动 // scrollTop > 100 是为了避免在页面顶部微小滚动时就隐藏顶栏 if (scrollTop > lastScrollTop && scrollTop > 100) { topBar.classList.add('weread-auto-hidden'); controls.classList.add('weread-auto-hidden'); } // 向上滚动时显示 else if (scrollTop < lastScrollTop) { topBar.classList.remove('weread-auto-hidden'); controls.classList.remove('weread-auto-hidden'); } // 更新最后滚动位置 lastScrollTop = scrollTop <= 0 ? 0 : scrollTop; }, false); })();