您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Helpers for PixAI: Toggle between 4x1 and 2x2 layouts for the image grid and toggle the visibility of the right sidebar.
当前为
- // ==UserScript==
- // @name PixAI UI Helpers
- // @namespace http://yourname.tampermonkey.net/
- // @version 1.3
- // @description Helpers for PixAI: Toggle between 4x1 and 2x2 layouts for the image grid and toggle the visibility of the right sidebar.
- // @author Yada
- // @match https://pixai.art/generator/*
- // @icon https://pixai.art/favicon.ico
- // @grant none
- // @license MIT
- // @supportURL http://yoursupporturl.com
- // ==/UserScript==
- (function() {
- 'use strict';
- let is2x2Layout = false;
- let isRightBarCollapsed = false;
- // Function to get the target element for grid layout
- function getGridTargetElement() {
- return document.querySelector('#workbench-layout main > div > div:nth-child(2) > div > div:nth-child(1)');
- }
- // Function to set the layout to 4x1
- function setLayout4x1() {
- const imageContainer = getGridTargetElement();
- if (imageContainer) {
- imageContainer.style.setProperty('--grid-cols', '4');
- imageContainer.style.setProperty('--grid-rows', '1');
- is2x2Layout = false;
- }
- }
- // Function to set the layout to 2x2
- function setLayout2x2() {
- const imageContainer = getGridTargetElement();
- if (imageContainer) {
- imageContainer.style.setProperty('--grid-cols', '2');
- imageContainer.style.setProperty('--grid-rows', '2');
- is2x2Layout = true;
- }
- }
- // Function to toggle between layouts
- function toggleLayout() {
- if (is2x2Layout) {
- setLayout4x1();
- } else {
- setLayout2x2();
- }
- }
- // 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';
- isRightBarCollapsed = true;
- }
- }
- // Function to restore the original width of the right bar
- function restoreRightBarWidth() {
- const workbenchLayout = document.querySelector('#workbench-layout');
- if (workbenchLayout) {
- workbenchLayout.style.gridTemplateColumns = 'min-content 1fr 380px';
- isRightBarCollapsed = false;
- }
- }
- // Function to toggle the right bar's visibility
- function toggleRightBar() {
- if (isRightBarCollapsed) {
- restoreRightBarWidth();
- } else {
- setRightBarWidthToZero();
- }
- }
- // 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';
- // 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',
- };
- // Create toggle layout button
- const toggleLayoutButton = document.createElement('button');
- toggleLayoutButton.textContent = 'Toggle Image Layout';
- Object.assign(toggleLayoutButton.style, buttonStyle);
- toggleLayoutButton.onclick = toggleLayout;
- // Create toggle right bar button
- const toggleRightBarButton = document.createElement('button');
- toggleRightBarButton.textContent = 'Toggle Right Bar';
- Object.assign(toggleRightBarButton.style, buttonStyle);
- toggleRightBarButton.onclick = toggleRightBar;
- // Append buttons to container
- buttonContainer.appendChild(toggleLayoutButton);
- buttonContainer.appendChild(toggleRightBarButton);
- // Append button container to body
- document.body.appendChild(buttonContainer);
- // Set initial layout based on current grid settings
- const initialGridContainer = getGridTargetElement();
- if (initialGridContainer && initialGridContainer.style.getPropertyValue('--grid-cols') === '4') {
- is2x2Layout = false;
- } else {
- is2x2Layout = true;
- }
- // Set initial state for the right bar
- const workbenchLayout = document.querySelector('#workbench-layout');
- if (workbenchLayout && workbenchLayout.style.gridTemplateColumns.includes('0px')) {
- isRightBarCollapsed = true;
- } else {
- isRightBarCollapsed = false;
- }
- })();