// ==UserScript==
// @name 全屏按钮(适用于移动设备)
// @name:en Full screen button (for mobile devices)
// @namespace http://tampermonkey.net/
// @version 2.0
// @description 一个全屏按钮,支持拖动、自动淡化、防穿透、适配移动端横竖屏变化。
// @description:zh-CN 一个全屏按钮,支持拖动、自动淡化、防穿透、适配移动端横竖屏变化。
// @description:en A full-screen button, Supports dragging, automatic fading, anti-penetration, and adapts to the horizontal and vertical screen changes of mobile terminals.
// @description:en-US A full-screen button, Supports dragging, automatic fading, anti-penetration, and adapts to the horizontal and vertical screen changes of mobile terminals.
// @author 凡留钰 + ChatGPT
// @contributor Gemini(某位(忘了额)网友用做过)
// @match *://*/*
// @icon data:image/png;base64,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
// @grant none
// @license MIT
// ==/UserScript==
(function () {
'use strict';
const iconBase64 = 'data:image/png;base64,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';
const btn = document.createElement('button');
let leftPercent = 95;
let topPercent = 95;
Object.assign(btn.style, {
position: 'fixed',
width: '4vw', // 按钮大小_百分比
height: '4vw',
minWidth: '24px', // 按钮大小_最小
minHeight: '24px',
maxWidth: '48px', // 按钮大小_最大
maxHeight: '48px',
backgroundImage: `url("${iconBase64}")`,
backgroundSize: 'cover',
backgroundRepeat: 'no-repeat',
backgroundPosition: 'center',
borderRadius: '50%',
boxShadow: '0 2px 5px rgba(0,0,0,0.3)',
border: 'none',
borderRadius: '50%',
zIndex: '999',
cursor: 'grab',
userSelect: 'none',
transition: 'opacity 0.3s ease',
opacity: '1',
});
document.body.appendChild(btn);
function updatePosition() {
const width = btn.offsetWidth;
const height = btn.offsetHeight;
const left = (leftPercent / 100) * (window.innerWidth - width);
const top = (topPercent / 100) * (window.innerHeight - height);
btn.style.left = `${left}px`;
btn.style.top = `${top}px`;
}
function clampAndUpdatePosition() {
leftPercent = Math.max(0, Math.min(100, leftPercent));
topPercent = Math.max(0, Math.min(100, topPercent));
updatePosition();
}
function isFullscreen() {
return document.fullscreenElement || document.webkitFullscreenElement;
}
function toggleFullscreen() {
const el = document.documentElement;
if (!isFullscreen()) {
(el.requestFullscreen || el.webkitRequestFullscreen)?.call(el);
} else {
(document.exitFullscreen || document.webkitExitFullscreen)?.call(document);
}
}
let dragging = false, moved = false;
let offsetX = 0, offsetY = 0, startX = 0, startY = 0;
function dragStart(e) {
e.preventDefault();
dragging = true;
moved = false;
const x = e.touches ? e.touches[0].clientX : e.clientX;
const y = e.touches ? e.touches[0].clientY : e.clientY;
const rect = btn.getBoundingClientRect();
offsetX = x - rect.left;
offsetY = y - rect.top;
startX = x;
startY = y;
btn.style.cursor = 'grabbing';
clearHideTimer();
const moveEvt = e.type === 'touchstart' ? 'touchmove' : 'mousemove';
const endEvt = e.type === 'touchstart' ? 'touchend' : 'mouseup';
document.addEventListener(moveEvt, dragMove, { passive: false });
document.addEventListener(endEvt, dragEnd);
}
function dragMove(e) {
if (!dragging) return;
e.preventDefault();
const x = e.touches ? e.touches[0].clientX : e.clientX;
const y = e.touches ? e.touches[0].clientY : e.clientY;
if (Math.abs(x - startX) > 5 || Math.abs(y - startY) > 5) moved = true;
const newLeft = x - offsetX;
const newTop = y - offsetY;
const width = btn.offsetWidth;
const height = btn.offsetHeight;
leftPercent = (newLeft / (window.innerWidth - width)) * 100;
topPercent = (newTop / (window.innerHeight - height)) * 100;
clampAndUpdatePosition();
}
function dragEnd(e) {
dragging = false;
btn.style.cursor = 'grab';
document.removeEventListener('mousemove', dragMove);
document.removeEventListener('mouseup', dragEnd);
document.removeEventListener('touchmove', dragMove);
document.removeEventListener('touchend', dragEnd);
if (!moved) {
e.preventDefault();
toggleFullscreen();
}
startHideTimer();
}
btn.addEventListener('mousedown', dragStart);
btn.addEventListener('touchstart', dragStart, { passive: false });
btn.addEventListener('click', (e) => {
e.stopPropagation();
e.preventDefault();
});
let hideTimer;
function startHideTimer() {
clearTimeout(hideTimer);
hideTimer = setTimeout(() => {
btn.style.opacity = '0.4';
}, 3000);
}
function clearHideTimer() {
clearTimeout(hideTimer);
btn.style.opacity = '0.8';
}
['mouseenter', 'touchstart'].forEach(evt => btn.addEventListener(evt, clearHideTimer));
['mouseleave', 'touchend'].forEach(evt => btn.addEventListener(evt, startHideTimer));
window.addEventListener('resize', clampAndUpdatePosition);
window.addEventListener('orientationchange', clampAndUpdatePosition);
clampAndUpdatePosition();
startHideTimer();
})();