// ==UserScript== // @name 仰晨-B站功能优化 // @description 1、《不用长按就可以3倍速啦 支持 2.5 3 3.5 4 倍速(2022.11.15》 2、《给出每集剩下的时间-----《只有教程集合才有效》 鬼畜集合的标签是不同的所以无效的,有时候集合也会加载太快导致失败,第二次有了缓存基本就行了,暂时就不改了,我要学习java 55555 js我就是个小白,算是想要优化一下看教程 又觉得自己应该可以 就百度 来完成了(2023.1.18》3、《添加按钮控制《看进度》是否打开2023.1.20》4、《增加显示总时长2023.1.20 02:15》5、《改变总时长位置,增加按钮滚到当前视频集到屏幕 样式分离开来 2023.1.25》 // @license AGPL License // @namespace https://mp.weixin.qq.com/s/zsVmSmd63OIxuoDbKGA-xg // @version 2023.1.25 // @author 仰晨 // @match *://www.bilibili.com/video/* // @icon https://bilibili.com/favicon.ico // @grant none // @downloadURL none // ==/UserScript== //看进度 //------------给出每集剩下的时间-----《只有教程集合才有效》 鬼畜集合的标签是不同的所以无效的-------------------------======================================================= function lookJinDu(){var element=document.getElementById("multi_page").getElementsByClassName("duration"); //每一集是时间标签 var allElement = document.getElementsByClassName("list-box")[0].children; //视频集合下的全部标签 console.log("视频列表共有"+element.length); if(element.length==allElement.length){ //如果还没有进度就加进度 //定义一个数组放每个视频的秒数 var arr = []; var s_all = 0; //收集总时长-----//单纯是秒更好处理--------------------------------- for(let i=0;i=0;i--){ jindu[i].remove(); } document.getElementById("setText").innerText="已关闭已看进度"; } }//看进度方法结束------------------------------------------------------------------------------------------------ window.onload=function() { function 插入倍速 (速度){ //创建一个p元素 var para = document.createElement("li"); para.setAttribute('class','bpx-player-ctrl-playbackrate-menu-item bpx-state-active'); //设置标签属性 para.setAttribute('data-value',速度); //设置标签属性 para.innerText=速度+"x"; //获取父标签 var div=document.getElementsByClassName("bpx-player-ctrl-playbackrate-menu")[0]; //添加标签 var one=div.firstChild;// 获取父标签的第一个子元素 div.insertBefore(para,one); // 在父标签的第一个子元素,前插入div标签 } 插入倍速(2.5); 插入倍速(3); 插入倍速(3.5); 插入倍速(4); //————————————————看进度按钮开关—————————————————————————————— //创建一个按钮 let bt = document.createElement("button"); //设置id 方便改内容 bt.setAttribute('id','setText'); //设置标签属性 //设置标签内容 bt.innerText="已打开已看进度"; //设置样式和位置放下面了2023.1.25 //bt.style = "position: fixed; right: 0px;bottom: 20px;color:red;"; //插入父标签下 document.getElementById("app").appendChild(bt); bt.onclick= function(){lookJinDu();};//开关按钮 lookJinDu();//默认打开 //—————————————————————————————————————————————————————— //——————————————集合中《当前在看的》 滚到屏幕可见位置—————————————————————— do{ //创建一个按钮 let see = document.createElement("div"); //设置id 方便改内容 see.setAttribute('id','see'); //设置标签属性 //设置标签内容 see.innerText="当前播放集"; //设置样式(分离了) //插入父标签下 document.getElementsByClassName("head-con")[0].appendChild(see); see.onclick= function(){document.getElementsByClassName("on")[3].scrollIntoView({ block: "nearest",behavior: "smooth" });};//平滑滚到到屏幕可见 }while(false); }//加载完成执行收括号 //——————————————添加样式(分离操作)——————————————————————————————2023.1.25 begin do{ var style=".jindu{color:#d3d3d3;}\ #setText{position: fixed; right: 0px;bottom: 20px;color:red;}\ #see{position: absolute;\ top: 200px;\ left: 100%;\ background-color: #a3def461;\ color: #f47676;\ font-weight: 555;\ border-radius: 5px;\ width: 20px;\ text-align: center;\ cursor: pointer;\ border: 1px #fdbaba solid;}\ #see:hover{background-color: #0000008a;color: #ffffff;}\ "; //cursor:pointer;变小手 :hover碰到触发 var ele=document.createElement("style"); ele.innerHTML=style; document.getElementsByTagName('head')[0].appendChild(ele) }while(false); //——————————————————————————————————————————————————————————