您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Greasy Fork is available in English.
进入宽屏模式时自动将播放器垂直居中视口,退出宽屏模式自动滚动页面到顶部。
当前为
// ==UserScript== // @name B站宽屏播放器自动居中 // @namespace @ChatGPT // @version 1.0 // @description 进入宽屏模式时自动将播放器垂直居中视口,退出宽屏模式自动滚动页面到顶部。 // @author ChatGPT // @license MIT // @match https://*.bilibili.com/* // @grant none // @run-at document-end // ==/UserScript== (function() { 'use strict'; const wideBtnSelector = '.bpx-player-ctrl-wide'; let lastScrollPosition = 0; function scrollToPlayer() { const player = document.querySelector('#bilibili-player'); if (player) { lastScrollPosition = window.pageYOffset; const playerTop = player.getBoundingClientRect().top + window.pageYOffset; const newPosition = playerTop - 75; window.scrollTo({ top: newPosition, behavior: 'smooth' }); } } function scrollToTop() { window.scrollTo({ top: 0, behavior: 'smooth' }); } function handleWideScreenButton(wideBtn) { wideBtn.addEventListener('click', () => { const isInWideMode = wideBtn.classList.contains('bpx-state-entered'); if (isInWideMode) { scrollToPlayer(); } else { scrollToTop(); } }); } function init() { const wideBtn = document.querySelector(wideBtnSelector); if (wideBtn) { handleWideScreenButton(wideBtn); } else { const observer = new MutationObserver((mutations, obs) => { const wideBtn = document.querySelector(wideBtnSelector); if (wideBtn) { handleWideScreenButton(wideBtn); obs.disconnect(); } }); observer.observe(document, { childList: true, subtree: true }); } } init(); })();