您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Place the YouTube video in a small window at the bottom right corner when scrolling.
// ==UserScript== // @name YouTube Float Player // @namespace YouTube Float Player // @version 1.0.0 // @description Place the YouTube video in a small window at the bottom right corner when scrolling. // @author DumbGPT // @match *://www.youtube.com/* // @grant none // ==/UserScript== (function() { 'use strict'; var doc = document; var win = window; var floatheight = 0; function docsearch(query) { return doc.evaluate(query, doc, null, 7, null); } function insertStyle(str, id) { var styleNode = null; if (id != null) { styleNode = doc.getElementById(id); } if (styleNode == null) { styleNode = document.createElement("style"); styleNode.id = id; styleNode.setAttribute("type", "text/css"); doc.head.appendChild(styleNode); } if (styleNode.textContent != str) styleNode.textContent = str; } function reset_float() { var page = docsearch("//ytd-page-manager/ytd-watch-flexy").snapshotItem(0); if (!page) return; if (page.getAttribute("float") != null) setTimeout(function () { win.dispatchEvent(new Event('resize')) }, 100); page.removeAttribute("float"); page.parentNode.parentNode.removeAttribute("float"); insertStyle("", "ytpc_style_float"); floatheight = 0; } function float() { if (win.location.href.indexOf("watch?") == -1) { reset_float(); return; } var page = docsearch("//ytd-page-manager/ytd-watch-flexy").snapshotItem(0); if (!page) return; var intheater = page.getAttribute("theater") != null; var fullscreen = page.getAttribute("fullscreen") != null; if (fullscreen) { reset_float(); return; } var vid = intheater ? docsearch("//*[@id='full-bleed-container']").snapshotItem(0) : docsearch("//*[@id='primary-inner']/*[@id='player']").snapshotItem(0); if (!vid) return; var val = vid.getBoundingClientRect(); var vheight = val.bottom - val.top; var W = doc.body.clientWidth || doc.documentElement.clientWidth; var H = doc.body.clientHeight || doc.documentElement.clientHeight; var height = 240; var width = 427; var infloat = page.getAttribute("float") != null; if (!infloat) { floatheight = vheight; } var thres = -1; if (floatheight > 0) thres = floatheight - 220; var scrollY = win.pageYOffset; if (scrollY >= thres && thres > 0) { page.setAttribute("float", ""); page.parentNode.parentNode.setAttribute("float", ""); var hoff = W - width; var voff = H - height; var rtl = (doc.body.getAttribute('dir') == 'rtl'); var lroff = rtl ? "right:0px !important;" : "left:" + hoff + "px !important;"; insertStyle("\ ytd-watch-flexy[float] #player-container {position: fixed !important; top: " + voff + "px !important; " + lroff + " width: " + width + "px !important; height: " + height + "px !important; z-index:1000 !important;}\ ytd-watch-flexy[float] .html5-main-video {width: " + width + "px !important; height: " + height + "px !important;}\ ", "ytpc_style_float"); } else { reset_float(); } } win.addEventListener("focus", float, false); win.addEventListener("blur", float, false); win.addEventListener("resize", float, false); win.addEventListener("scroll", float, false); setInterval(float, 1000); float(); })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址