您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
A script to set the right bar width to zero on PixAI's generator page with an option to restore the original width.
当前为
// ==UserScript== // @name PixAI Right Bar Width Control // @namespace http://yourname.tampermonkey.net/ // @version 1.2 // @description A script to set the right bar width to zero on PixAI's generator page with an option to restore the original width. // @author Yada // @match https://pixai.art/generator/* // @icon https://pixai.art/favicon.ico // @grant none // @license MIT // ==/UserScript== (function() { 'use strict'; let buttonsAdded = false; // Function to set right bar width to zero function setRightBarWidthToZero() { const workbenchLayout = document.querySelector('#workbench-layout'); if (workbenchLayout) { workbenchLayout.style.gridTemplateColumns = 'min-content 1fr 0px'; } } // Function to restore the original width function restoreRightBarWidth() { const workbenchLayout = document.querySelector('#workbench-layout'); if (workbenchLayout) { workbenchLayout.style.gridTemplateColumns = 'min-content 1fr 380px'; } } // Function to add the buttons function addButtons() { if (buttonsAdded) return; // Create button container const buttonContainer = document.createElement('div'); buttonContainer.style.position = 'fixed'; buttonContainer.style.top = '10px'; buttonContainer.style.right = '10px'; buttonContainer.style.zIndex = '1000'; buttonContainer.style.display = 'flex'; buttonContainer.style.flexDirection = 'row'; buttonContainer.style.gap = '5px'; // Common button styles const buttonStyle = { display: 'flex', justifyContent: 'center', alignItems: 'center', backgroundColor: 'transparent', color: 'white', fontFamily: 'Inter, sans-serif', fontSize: '0.75rem', fontWeight: '500', textShadow: '0 1px 2px rgba(0, 0, 0, 0.5)', padding: '0.25rem 0.5rem', border: 'none', borderRadius: '0.25rem', cursor: 'pointer', transition: 'background-color 0.3s', }; // Function to apply common styles to a button function applyButtonStyle(button) { for (const [key, value] of Object.entries(buttonStyle)) { button.style[key] = value; } // Add hover effect button.addEventListener('mouseover', () => { button.style.backgroundColor = 'rgba(0, 0, 0, 0.1)'; }); button.addEventListener('mouseout', () => { button.style.backgroundColor = 'transparent'; }); } // Create button to set right bar width to zero const zeroButton = document.createElement('button'); zeroButton.textContent = 'Collapse'; applyButtonStyle(zeroButton); zeroButton.onclick = setRightBarWidthToZero; // Create button to restore original width const restoreButton = document.createElement('button'); restoreButton.textContent = 'Restore'; applyButtonStyle(restoreButton); restoreButton.onclick = restoreRightBarWidth; // Append buttons to container buttonContainer.appendChild(zeroButton); buttonContainer.appendChild(restoreButton); // Append button container to body document.body.appendChild(buttonContainer); buttonsAdded = true; } // Function to remove the buttons function removeButtons() { const buttonContainer = document.querySelector('div[style*="position: fixed"]'); if (buttonContainer) { buttonContainer.remove(); buttonsAdded = false; } } // Function to monitor URL changes function monitorURLChanges() { const currentURL = window.location.href; if (currentURL.includes('/generator/')) { addButtons(); } else { removeButtons(); } } // Monitor for history changes (when navigating between pages using internal links) window.addEventListener('popstate', monitorURLChanges); // Monitor for pushState changes (when navigating between pages using internal links) const originalPushState = history.pushState; history.pushState = function() { originalPushState.apply(this, arguments); monitorURLChanges(); }; // Initial check to add/remove buttons based on the current page monitorURLChanges(); })();