Greasy Fork is available in English.
修改新版视频页的视频合集样式
// ==UserScript== // @name B站视频页 - 视频合集样式 // @namespace mscststs // @version 1.7 // @license ISC // @description 修改新版视频页的视频合集样式 // @author mscststs // @match https://www.bilibili.com/video/* // @icon https://www.bilibili.com/favicon.ico // @require https://greasyfork.org/scripts/38220-mscststs-tools/code/MSCSTSTS-TOOLS.js?version=713767 // @run-at document-body // @grant none // ==/UserScript== (function() { 'use strict'; StartVideoCollection(); async function StartVideoCollection(){ await mscststs.wait(".video-pod .video-pod__header .header-top .left .title"); var article = document.querySelector("body"); var boolean = 0; function setVideoCollection() { var leftTitle = document.querySelector(".video-pod .video-pod__header .header-top .left .title"); var videoPod = document.querySelector(".video-pod .video-pod__body"); //alert(document.querySelectorAll(".video-pod .simple-base-item .title .title-txt")[0].innerHTML); var collectionMaxHeight = "215px"; var videoMaxHeight = "348px"; if(leftTitle.innerHTML != "视频选集" && videoPod.style.maxHeight != collectionMaxHeight){ videoPod.style.cssText += "max-height:"+collectionMaxHeight+"!important;"; //alert(0); VideoCollection(); var slideItems = document.querySelectorAll(".pod-slide .slide-inner .slide-item"); if(slideItems) { for(let i = 0; i < slideItems.length; i++) { slideItems[i].addEventListener('click', function() { setTimeout(function() { VideoCollection(); }); }); } } setTimeout(async function() { await mscststs.wait(".pod-slide-more-popover .pod-slide-more-dropdown .slide-item"); var dropdownSlideItems = document.querySelectorAll(".pod-slide-more-popover .pod-slide-more-dropdown .slide-item"); for(let i = 0; i < dropdownSlideItems.length; i++) { dropdownSlideItems[i].addEventListener('click', function() { setTimeout(function() { VideoCollection(); }); }); } }); } else if(leftTitle.innerHTML == "视频选集" && document.querySelectorAll(".video-pod .simple-base-item .title .title-txt")[0].innerHTML.search(/^P\d +/) == -1) { videoPod.style.cssText += "max-height:"+videoMaxHeight+"!important;"; //alert(document.querySelectorAll(".video-pod .simple-base-item .title .title-num")[0]); VideoOperation(); var leftVideoMode = document.querySelector(".video-pod .video-pod__header .header-top .left .view-mode"); if(leftVideoMode) { leftVideoMode.addEventListener('click', function() { if(boolean == 1) { boolean = 2; } else if(boolean == 2) { VideoOperation(); } }); } } } async function VideoCollection() { await mscststs.wait(".video-pod .simple-base-item"); let normals = document.querySelectorAll(".video-pod .simple-base-item"); //let fontCSS = "font-size:14px; font-family:PingFang SC,HarmonyOS_Regular,Helvetica Neue,Microsoft YaHei,sans-serif;"; let fontCSS = "font-size:14px; line-height:30px;"; for(let i = 0; i < normals.length; i++) { normals[i].style.margin = "5px 0"; normals[i].querySelector(".title").style.cssText += "height: 30px;"; normals[i].querySelector(".title .title-txt").style.cssText += fontCSS; normals[i].querySelector(".stats").style.cssText += fontCSS; } } async function VideoOperation() { await mscststs.wait(".video-pod .simple-base-item"); if(document.querySelectorAll(".video-pod .simple-base-item .title .title-txt")[0].innerHTML.search(/^P\d +/) == -1) { let normals = document.querySelectorAll(".video-pod .simple-base-item"); let fontCSS = "font-size:13.5px; line-height:30px;"; for(let i = 0; i < normals.length; i++) { normals[i].style.margin = "5px 0"; normals[i].querySelector(".title").style.cssText += "height: 30px;"; normals[i].querySelector(".title .title-txt").style.cssText += fontCSS; normals[i].querySelector(".stats").style.cssText += fontCSS; //normals[i].querySelector(".title .title-txt").insertAdjacentHTML("beforebegin", "<div class='title-num' style='"+fontCSS+" margin-right:10px;'>P"+(i+1)+"</div>"); normals[i].querySelector(".title .title-txt").innerHTML = "P"+(i+1)+" "+normals[i].querySelector(".title .title-txt").innerHTML; } boolean = 1; } } var options = { 'childList': true, 'attributes':true }; const callback = function(mutationsList, observer) { setVideoCollection(); }; const observer = new MutationObserver(callback); observer.observe(article, options); setVideoCollection(); /*var time = 500; for(var i = 0; i < 20; i++) { setTimeout(function() { setVideoCollection(); //alert(123); }, time); time += 500; }*/ } })();