Greasy Fork is available in English.
在b站播放器内固定显示进度条
// ==UserScript==
// @name bilibili固定进度条
// @namespace http://tampermonkey.net/
// @version 1.0.0
// @description 在b站播放器内固定显示进度条
// @author somenothing
// @homepage https://github.com/somenothing/bilibili-progress-bar-pin
// @supportURL https://github.com/somenothing/bilibili-progress-bar-pin/issues
// @match *://*.bilibili.com/video/*
// @icon https://www.bilibili.com/favicon.ico
// @grant none
// ==/UserScript==
(function() {
'use strict';
function enable_modification(control_top) {
control_top.setAttribute("style", "opacity: 1; visibility: visible; bottom: -6px; padding: 0px; ");
}
function disable_modification(control_top) {
control_top.removeAttribute("style");
}
window.onload = function(){
console.log("【已加载bilibili固定进度条】")
const control_entity = document.querySelector(".bpx-player-control-entity");
const control_top = document.querySelector(".bpx-player-control-top");
const progress_area = document.querySelector(".bpx-player-shadow-progress-area");
if (control_entity.getAttribute("data-shadow-show") == "true") {
enable_modification(control_top);
}
let id = setInterval(() => {
if (document.querySelector(".bpx-player-shadow-progress-area") != null) {
document.querySelector(".bpx-player-shadow-progress-area").setAttribute("style", "opacity: 0; visibility: hidden");
clearInterval(id)
}
}, 500)
const observer_config = { attributes: true, attributeName: "data-shadow-show", attributeOldValue: true };
const observer_callback = function(mutationsList) {
for(let mutation of mutationsList) {
if (mutation.type === "attributes") {
if (control_entity.getAttribute("data-shadow-show") == "true") {
enable_modification(control_top);
}
else {
disable_modification(control_top);
}
}
}
};
const controller_observer = new MutationObserver(observer_callback);
controller_observer.observe(control_entity, observer_config);
}
})();