您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Create a sliding button to change text direction between RTL and LTR with improved behavior
// ==UserScript== // @name Text Direction Selector // @name:ar محدد اتجاه النص // @name:fr Sélecteur de direction du texte // @namespace http://tampermonkey.net/ // @version 1.9 // @description Create a sliding button to change text direction between RTL and LTR with improved behavior // @description:ar أنشئ زرًا منزلقًا لتغيير اتجاه النص بين من اليمين لليسار (RTL) ومن اليسار لليمين (LTR) // @description:fr Crée un bouton coulissant pour changer la direction du texte entre RTL et LTR avec un comportement amélioré // @author Your Name // @match *://*/* // @grant none // @license MIT // ==/UserScript== (function() { 'use strict'; //# Define the elements to apply the direction /*const elements = ` html, body, center, a, i, h1, h2, h3, h4, h5, h6, p, li, span, ul, td, tr, th, div, strong, button, path, svg, main, footer, nav, section, time, use, defs, symbol, table, br, header, form, select `;*/ // Create a floating button var buttonContainer = document.createElement('div'); buttonContainer.style.position = 'fixed'; buttonContainer.style.bottom = '20px'; buttonContainer.style.left = '-40px'; buttonContainer.style.zIndex = '1000'; buttonContainer.style.borderRadius = '50%'; buttonContainer.style.width = '50px'; buttonContainer.style.height = '50px'; buttonContainer.style.backgroundColor = '#3498db'; buttonContainer.style.display = 'flex'; buttonContainer.style.alignItems = 'center'; buttonContainer.style.justifyContent = 'center'; buttonContainer.style.cursor = 'pointer'; buttonContainer.style.color = 'white'; buttonContainer.style.fontSize = '20px'; buttonContainer.style.textAlign = 'center'; buttonContainer.style.lineHeight = '50px'; buttonContainer.style.opacity = '0.8'; buttonContainer.style.transition = 'left 0.3s ease'; buttonContainer.innerHTML = '⇔'; document.body.appendChild(buttonContainer); // LTR and RTL buttons var ltrButton = document.createElement('div'); ltrButton.innerText = 'LTR'; ltrButton.style.padding = '10px'; ltrButton.style.cursor = 'pointer'; ltrButton.style.backgroundColor = '#2ecc71'; ltrButton.style.color = 'white'; ltrButton.style.borderRadius = '5px'; ltrButton.style.marginBottom = '5px'; ltrButton.style.textAlign = 'center'; ltrButton.style.display = 'none'; buttonContainer.insertBefore(ltrButton, buttonContainer.firstChild); var rtlButton = document.createElement('div'); rtlButton.innerText = 'RTL'; rtlButton.style.padding = '10px'; rtlButton.style.cursor = 'pointer'; rtlButton.style.backgroundColor = '#e74c3c'; rtlButton.style.color = 'white'; rtlButton.style.borderRadius = '5px'; rtlButton.style.textAlign = 'center'; rtlButton.style.display = 'none'; buttonContainer.appendChild(rtlButton); // Toggle button position on click buttonContainer.addEventListener('click', function(event) { event.stopPropagation(); if (buttonContainer.style.left === '-40px') { buttonContainer.style.left = '37px'; rtlButton.style.display = 'block'; ltrButton.style.display = 'block'; } else { buttonContainer.style.left = '-40px'; rtlButton.style.display = 'none'; ltrButton.style.display = 'none'; } }); //# Function to set text direction on specified elements /*function setDirection(direction) { const styleElement = document.getElementById('direction-style') || document.createElement('style'); styleElement.id = 'direction-style'; styleElement.innerHTML = `${elements} { direction: ${direction}; text-align: ${direction === 'rtl' ? 'right' : 'left'}; }`; document.head.appendChild(styleElement); }*/ //! Function to set text direction on the whole document function setDirection(direction) { document.documentElement.style.direction = direction; document.documentElement.style.textAlign = direction === 'rtl' ? 'right' : 'left'; } // Apply RTL direction on click rtlButton.addEventListener('click', function() { setDirection('rtl'); }); // Apply LTR direction on click ltrButton.addEventListener('click', function() { setDirection('ltr'); }); // Hide options on outside click document.addEventListener('click', function(event) { if (!buttonContainer.contains(event.target)) { buttonContainer.style.left = '-40px'; rtlButton.style.display = 'none'; ltrButton.style.display = 'none'; } }); })();