返回首頁 

B站播放体验增强

默认网页全屏 网页全屏时滚轮切换宽屏 滚动页面到顶部无鼠标移动自动网页全屏


Install this script?
// ==UserScript==// @name  B站播放体验增强// @namespace  1018148046// @author  颜太吓// @version  7.02// @match https://www.bilibili.com/video/*// @match https://www.bilibili.com/bangumi/play/*// @match https://www.bilibili.com/festival/*// @run-at  document-start// @unwrap// @description 默认网页全屏 网页全屏时滚轮切换宽屏 滚动页面到顶部无鼠标移动自动网页全屏// ==/UserScript=='use strict';(async (D, W) => {let player, dbl_timeout, scroll_timeout, webmodeawait new Promise(resolve => Object.defineProperty(W, 'player', {set(e) {resolve(player = e)},get() {return player}}))let wide = () => player.requestStatue(1).then(e => W.scroll({top: player.mediaElement().getBoundingClientRect().top - 75}))const handle = {click(e) {if (e.target !== player.mediaElement()) returne.stopPropagation()clearTimeout(dbl_timeout)if (e.detail === 1) dbl_timeout = setTimeout(() => player.isPaused() ? player.play() : player.pause(), 200)if (e.detail === 2) webmode ? wide() : player.requestStatue(2)},dblclick(e) {e.target === player.mediaElement() && e.stopPropagation()},wheel() {webmode && wide()},mousemove() {clearTimeout(scroll_timeout)},scroll() {clearTimeout(scroll_timeout)scroll_timeout = setTimeout(() => !W.scrollY && player.requestStatue(2), 388)}}//Object.values(nano.EventType).forEach(e => player.on(e, (e) => console.log(e.type)))Object.entries(handle).forEach(e => D.addEventListener(...e, true))player.on("Player_LoadStart", () => player.requestStatue(2))player.on("Player_Statue_Changed", () => webmode = player.getStates().mainScreen === 2)location.pathname.includes('bangumi') && player.once("Player_Progress", () => player.requestStatue(2))location.pathname.includes('bangumi') && player.on("Player_Ended", () => player.next())})(document, window)