Adds a zoom slider that can be moved anywhere on the page
当前为
// ==UserScript==
// @name Zoom Slider
// @namespace http://tampermonkey.net/
// @version 1.0
// @description Adds a zoom slider that can be moved anywhere on the page
// @author tae
// @license MIT
// @match *://*/*
// @grant none
// ==/UserScript==
(function() {
'use strict';
// Create the slider
const slider = document.createElement('input');
slider.type = 'range';
slider.min = '0.5';
slider.max = '2';
slider.step = '0.01';
slider.value = '1';
slider.style.position = 'fixed';
slider.style.top = '10px';
slider.style.left = '10px';
slider.style.zIndex = '10000';
slider.style.width = '200px';
// Create a container for the slider to make it draggable
const sliderContainer = document.createElement('div');
sliderContainer.style.position = 'fixed';
sliderContainer.style.top = '10px';
sliderContainer.style.left = '10px';
sliderContainer.style.zIndex = '10000';
sliderContainer.style.padding = '5px';
sliderContainer.style.backgroundColor = 'rgba(255, 255, 255, 0.8)';
sliderContainer.style.border = '1px solid #ccc';
sliderContainer.style.borderRadius = '5px';
sliderContainer.style.cursor = 'move';
sliderContainer.appendChild(slider);
document.body.appendChild(sliderContainer);
// Add zoom functionality
slider.addEventListener('input', function() {
document.body.style.transform = `scale(${slider.value})`;
document.body.style.transformOrigin = '0 0';
});
// Make the slider draggable
let isDragging = false;
let startX, startY, initialLeft, initialTop;
sliderContainer.addEventListener('mousedown', function(e) {
isDragging = true;
startX = e.clientX;
startY = e.clientY;
initialLeft = parseInt(sliderContainer.style.left, 10);
initialTop = parseInt(sliderContainer.style.top, 10);
document.addEventListener('mousemove', onMouseMove);
document.addEventListener('mouseup', onMouseUp);
});
function onMouseMove(e) {
if (isDragging) {
const dx = e.clientX - startX;
const dy = e.clientY - startY;
sliderContainer.style.left = `${initialLeft + dx}px`;
sliderContainer.style.top = `${initialTop + dy}px`;
}
}
function onMouseUp() {
isDragging = false;
document.removeEventListener('mousemove', onMouseMove);
document.removeEventListener('mouseup', onMouseUp);
}
})();