您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
对Bilibili的视频播放页面改成从右到左布局方式,解决长时间小窗看视频导致头轻微向左边偏转的问题。记忆播放窗口宽屏设置,自动启用宽屏模式。
// ==UserScript== // @name RTL布局bilibili.com // @note // @note 仅在自己pc上测试 // @note // @description 对Bilibili的视频播放页面改成从右到左布局方式,解决长时间小窗看视频导致头轻微向左边偏转的问题。记忆播放窗口宽屏设置,自动启用宽屏模式。 // @match https://bilibili.com/ // @match https://www.bilibili.com/ // @match https://*bilibili.com/*play/* // @match https://*bilibili.com/list/* // @match https://*bilibili.com/video/* // @icon https://www.bilibili.com/favicon.ico // @version 25.02.10 // @grant GM_getValue // @grant GM_registerMenuCommand // @grant GM_setValue // @grant GM_unregisterMenuCommand // @namespace https://space.bilibili.com/474516472?spm_id_from=namespace // @author https://space.bilibili.com/474516472?spm_id_from=author // @supportURL https://space.bilibili.com/474516472?spm_id_from=supportURL // @homepageURL https://space.bilibili.com/474516472?spm_id_from=homepageURL // @require https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js // @license MIT // // ==/UserScript== (function() { $(function() { console.log('run RTL') /* * */ const wideCtl = ({ checkedName = "✅ 自动开启宽屏模式", uncheckedName = "❌ 自动取消宽屏模式", initValue = false })=>{ let checked = initValue const currentName = () => checked ? checkedName : uncheckedName; const register = () => { GM_registerMenuCommand(currentName(), () => { onChange(!checked); }); }; let onChange = (checked2) => { ctl.checked = checked2; }; const ctl = { get onChange() { return onChange; }, set onChange(newFn) { onChange = newFn; }, get checked() { return checked; }, set checked(newValue) { if (newValue == checked) return; GM_unregisterMenuCommand(currentName()); checked = newValue; GM_setValue('widemode', newValue); register(); }, }; register(); return ctl; } const widectl = wideCtl({initValue: GM_getValue('widemode', false)}) const url = document.URL.toLowerCase() const rtlcss = {open: [], close: { ".video-container-v1": {'display': '', 'flex-direction': ""}, '.right-container': {'margin-left': '', 'margin-right': ""}, ".playlist-container": {'display': '', 'flex-direction': ""}, '.playlist-container--right': {'margin-left': '', 'margin-right': ""}, ".plp-r.sticky": {'left': ''}, "#bilibili-player-wrap": {'padding-right': '', 'padding-left': ''}, '.player-left-components': {'padding-right': '', 'padding-left': ''} }} if(url.indexOf('play/') > -1){ rtlcss.open = { ".plp-r.sticky": {'left': '0'}, "#bilibili-player-wrap": {'padding-right': '0', 'padding-left': 'calc(var(--right-bar-width) + 30px)'}, '.player-left-components': {'padding-right': '0', 'padding-left': 'calc(var(--right-bar-width) + 30px)'} } }else if(url.indexOf('list/') > -1){ rtlcss.open = { ".playlist-container": {'display': 'flex', 'flex-direction': "row-reverse"}, '.playlist-container--right': {'margin-left': '0', 'margin-right': "30px"} } }else if(url.indexOf('video/') > -1){ rtlcss.open = { ".video-container-v1": {'display': 'flex', 'flex-direction': "row-reverse"}, '.right-container': {'margin-left': '0', 'margin-right': "30px"} } } const rtlctl = (status)=>{ for(const item in rtlcss[status]) $(item).css(rtlcss[status][item]) } const widebtn = ()=> { rtlctl(widectl.checked == true ? 'close' : "open") $('.bpx-player-ctrl-wide').click() } // 处理宽屏模式 const observer = new MutationObserver(function (mutationsList, observer) { if($('.bpx-player-control-entity').length > 0 && $('.bpx-player-control-entity').css('display') == 'none') return ; if($('.bpx-player-ctrl-wide').hasClass('bpx-state-entered')){ // 宽屏模式 widectl.checked = true }else{ // 标准窗口 widectl.checked = false } rtlctl(widectl.checked == true ? 'close' : "open") }); if(widectl.checked != true) rtlctl('open') const _ = setInterval(()=>{ if($('.bpx-player-ctrl-wide').length > 0){ clearInterval(_) observer.observe($('.bpx-player-ctrl-wide').get(0), { attributes: true }); console.log('ready') if($('.bpx-player-ctrl-wide').hasClass("bpx-state-entered")){ if(widectl.checked != true) widebtn() }else{ if(widectl.checked == true) widebtn() } widectl.onChange = (newValue)=> { widectl.checked = newValue; widebtn() } GM_registerMenuCommand("已恢复上次的设置。如有问题可把视频页面分享给我", () => { if(confirm("如有问题可把视频页面分享发给我,点击确定继续报错")) window.open('https://space.bilibili.com/474516472', '_blank'); }); } }, 100) }) })()
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址