您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Overlay a grid onto the webpage and display current mouse coordinates in grid units
// ==UserScript== // @name Useless Things Series: Webpage Grid with Coordinates // @namespace http://tampermonkey.net/ // @version 1.0 // @description Overlay a grid onto the webpage and display current mouse coordinates in grid units // @match *://*/* // @license MIT // @namespace https://greasyfork.org/users/1126616 // ==/UserScript== // JavaScript code to dynamically create grid lines, display mouse coordinates, and convert pixel positions (function() { 'use strict'; // Default grid settings let numVerticalLines = 20; // Number of vertical grid lines let numHorizontalLines = 20; // Number of horizontal grid lines let gridColor = '#c90016'; // Grid line color let gridOpacity = 0.5; // Grid line opacity let gridVisible = true; // Initially show grid // Create grid overlay const gridOverlay = document.createElement('div'); gridOverlay.id = 'grid-overlay'; gridOverlay.style.position = 'fixed'; gridOverlay.style.top = '0'; gridOverlay.style.left = '0'; gridOverlay.style.width = '100%'; gridOverlay.style.height = '100%'; gridOverlay.style.pointerEvents = 'none'; gridOverlay.style.zIndex = '9999'; document.body.appendChild(gridOverlay); // Create coordinates display const coordinatesDisplay = document.createElement('div'); coordinatesDisplay.id = 'coordinates-display'; coordinatesDisplay.style.position = 'fixed'; coordinatesDisplay.style.bottom = '10px'; coordinatesDisplay.style.left = '10px'; coordinatesDisplay.style.color = '#000'; // Default coordinate color coordinatesDisplay.style.fontSize = '14px'; // Default font size coordinatesDisplay.style.zIndex = '10000'; coordinatesDisplay.style.display = 'block'; // Initially show coordinates document.body.appendChild(coordinatesDisplay); // Create red dot for mouse tip const mouseTip = document.createElement('div'); mouseTip.id = 'mouse-tip'; mouseTip.style.position = 'fixed'; mouseTip.style.width = '8px'; mouseTip.style.height = '8px'; mouseTip.style.background = 'red'; mouseTip.style.borderRadius = '50%'; mouseTip.style.zIndex = '10001'; mouseTip.style.display = 'block'; // Initially show red dot document.body.appendChild(mouseTip); // Function to update grid style function updateGridStyle() { gridOverlay.innerHTML = ''; // Clear existing grid lines const verticalLineSpacing = window.innerWidth / numVerticalLines; const horizontalLineSpacing = window.innerHeight / numHorizontalLines; if (gridVisible) { for (let i = 1; i < numVerticalLines; i++) { const verticalLine = document.createElement('div'); verticalLine.style.position = 'absolute'; verticalLine.style.width = '1px'; verticalLine.style.height = '100%'; verticalLine.style.backgroundColor = gridColor; verticalLine.style.opacity = gridOpacity; verticalLine.style.left = `${i * verticalLineSpacing}px`; gridOverlay.appendChild(verticalLine); } for (let i = 1; i < numHorizontalLines; i++) { const horizontalLine = document.createElement('div'); horizontalLine.style.position = 'absolute'; horizontalLine.style.width = '100%'; horizontalLine.style.height = '1px'; horizontalLine.style.backgroundColor = gridColor; horizontalLine.style.opacity = gridOpacity; horizontalLine.style.top = `${i * horizontalLineSpacing}px`; gridOverlay.appendChild(horizontalLine); } } } // Function to display mouse coordinates and convert pixel positions function displayCoordinates(event) { const mouseX = event.clientX; const mouseY = event.clientY; const bodyWidth = document.body.offsetWidth; const bodyHeight = document.body.offsetHeight; const rightCoordinate = bodyWidth - mouseX; const bottomCoordinate = bodyHeight - mouseY; coordinatesDisplay.textContent = `Mouse Coordinates (px): (${mouseX}, ${mouseY}) | From Top: ${mouseY}px, From Left: ${mouseX}px, From Right: ${rightCoordinate}px, From Bottom: ${bottomCoordinate}px`; coordinatesDisplay.style.bottom = '20px'; // Position at the center bottom of the screen coordinatesDisplay.style.left = '50%'; // Position at the center horizontally coordinatesDisplay.style.transform = 'translateX(-50%)'; // Center horizontally coordinatesDisplay.style.color = '#fff'; // Text color coordinatesDisplay.style.backgroundColor = 'rgba(0, 0, 0, 0.5)'; // Background color with transparency coordinatesDisplay.style.padding = '10px'; // Padding for better visibility coordinatesDisplay.style.borderRadius = '5px'; // Rounded corners coordinatesDisplay.style.width = '800px'; coordinatesDisplay.style.textAlign = 'center'; } // Function to get position type of an element function getPositionType(element) { const position = window.getComputedStyle(element).position; return position; } // Call the function to create initial grid updateGridStyle(); // Function to toggle grid visibility function toggleGrid() { gridVisible = !gridVisible; gridOverlay.style.display = gridVisible ? 'block' : 'none'; coordinatesDisplay.style.display = gridVisible ? 'block' : 'none'; mouseTip.style.display = gridVisible ? 'block' : 'none'; } // Call toggleGrid() to ensure grid and coordinates are shown by default toggleGrid(); // Event listener for keydown events to toggle grid visibility document.addEventListener('keydown', function(event) { if (event.altKey && event.key === 'g') { toggleGrid(); } }); // Event listener for mousemove events to display mouse coordinates document.addEventListener('mousemove', function(event) { if (gridVisible) { displayCoordinates(event); } }); })();