您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Make YouTube's theater mode work like Twitch's one
当前为
// ==UserScript== // @name Better YouTube Theater Mode // @namespace https://github.com/NightFeather0615 // @version 1.1.0 // @description Make YouTube's theater mode work like Twitch's one // @author NightFeather // @match *://www.youtube.com/* // @icon https://www.google.com/s2/favicons?sz=64&domain=youtube.com // @grant none // @license MPL-2.0 // ==/UserScript== /* jshint esversion: 8 */ /* jshint -W083 */ /* jshint multistr: true */ /* eslint no-multi-str: 0 */ const waitElement = async (selector) => { 'use strict'; while (document.querySelector(selector) === null) { await new Promise((resolve, reject) => requestAnimationFrame(resolve)); } return document.querySelector(selector); }; const asyncSleep = async (ms) => { 'use strict'; return new Promise(resolve => setTimeout(resolve, ms)); }; (async function() { 'use strict'; let theaterBtn = await waitElement(".ytp-size-button.ytp-button"); let mashheadContainer = await waitElement("#masthead-container"); let pageManager = await waitElement("#page-manager"); let videoBleedContainer = await waitElement("#full-bleed-container"); let liveChat = document.querySelector("#chat"); const processTheaterMode = async () => { await asyncSleep(50); let isTheaterView = document.getElementById("masthead")?.getAttribute("theater")?.length >= 0; if (isTheaterView) { videoBleedContainer.style.maxHeight = "100vh"; videoBleedContainer.style.height = "100vh"; mashheadContainer.hidden = true; pageManager.style.marginTop = "0px"; if (liveChat) { liveChat.style.top = "0px"; liveChat.style.borderRadius = "0 0 0 0"; } } else { videoBleedContainer.style.maxHeight = ""; videoBleedContainer.style.height = ""; mashheadContainer.hidden = false; pageManager.style.marginTop = "var(--ytd-masthead-height,var(--ytd-toolbar-height))"; if (liveChat) { liveChat.style.borderRadius = "12px"; } } let resizeEvent = window.document.createEvent("UIEvents"); resizeEvent.initUIEvent("resize", true, false, window, 0); window.dispatchEvent(resizeEvent); } await processTheaterMode(); theaterBtn.onclick = processTheaterMode; })();