您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
可自定义按钮样式的洛谷专注模式
// ==UserScript== // @name 洛谷专注模式 // @namespace http://tampermonkey.net/ // @version 0.2 // @description 可自定义按钮样式的洛谷专注模式 // @author zhangruixiang // @match https://www.luogu.com.cn/problem/* // @grant GM_addStyle // ==/UserScript== (function() { 'use strict'; // ====================== 自定义区域 ====================== // 在这里修改按钮样式和位置(所有数值均可自由调整) const buttonConfig = { text: { normal: "专注模式", // 默认状态文字 active: "退出专注" // 专注模式状态文字 }, position: { top: "80px", // 距离顶部距离(支持px/rem/vh等) left: "100px", // 距离左侧距离(留空则为右侧按钮) right: "", // 距离右侧距离 bottom: "" // 距离底部距离 }, style: { padding: "8px 15px", background: "linear-gradient(135deg, #6e8efb, #a777e3)", // 渐变背景色 color: "white", border: "none", borderRadius: "50px", // 圆形按钮可设为50% fontSize: "14px", fontWeight: "bold", boxShadow: "0 4px 10px rgba(0,0,0,0.2)", cursor: "pointer", transition: "all 0.3s ease" // 悬停动画效果 }, hoverStyle: { // 鼠标悬停时的样式变化 transform: "scale(1.05)", boxShadow: "0 6px 15px rgba(0,0,0,0.3)" } }; // ====================================================== // 创建样式表 GM_addStyle(` #luogu-focus-btn { position: fixed; z-index: 9999; ${buttonConfig.position.top ? `top: ${buttonConfig.position.top};` : ''} ${buttonConfig.position.left ? `left: ${buttonConfig.position.left};` : ''} ${buttonConfig.position.right ? `right: ${buttonConfig.position.right};` : ''} ${buttonConfig.position.bottom ? `bottom: ${buttonConfig.position.bottom};` : ''} padding: ${buttonConfig.style.padding}; background: ${buttonConfig.style.background}; color: ${buttonConfig.style.color}; border: ${buttonConfig.style.border}; border-radius: ${buttonConfig.style.borderRadius}; font-size: ${buttonConfig.style.fontSize}; font-weight: ${buttonConfig.style.fontWeight}; box-shadow: ${buttonConfig.style.boxShadow}; cursor: ${buttonConfig.style.cursor}; transition: ${buttonConfig.style.transition}; } #luogu-focus-btn:hover { transform: ${buttonConfig.hoverStyle.transform}; box-shadow: ${buttonConfig.hoverStyle.boxShadow}; } `); // 创建按钮 const toggleButton = document.createElement('button'); toggleButton.id = 'luogu-focus-btn'; toggleButton.textContent = buttonConfig.text.normal; document.body.appendChild(toggleButton); // 定义需要隐藏的元素选择器 const elementsToHide = [ '#header', // 顶部导航栏 '.side', // 侧边栏 '.footer', // 页脚 '.problem-btn-group' // 题目按钮组(可选) ]; let isFocusMode = false; // 切换专注模式 toggleButton.addEventListener('click', () => { isFocusMode = !isFocusMode; toggleButton.textContent = isFocusMode ? buttonConfig.text.active : buttonConfig.text.normal; if (isFocusMode) { // 隐藏非题目内容 elementsToHide.forEach(selector => { const element = document.querySelector(selector); if (element) element.style.display = 'none'; }); // 调整题目区域 const problemContent = document.querySelector('.problem-content'); if (problemContent) { problemContent.style.margin = '0 auto'; problemContent.style.maxWidth = '1000px'; // 可调整题目区域宽度 } } else { // 恢复显示 elementsToHide.forEach(selector => { const element = document.querySelector(selector); if (element) element.style.display = ''; }); const problemContent = document.querySelector('.problem-content'); if (problemContent) { problemContent.style.margin = ''; problemContent.style.maxWidth = ''; } } }); })();