// ==UserScript== // @name 解锁b站vip视频+弹幕移植 // @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAACS0lEQVRYR8WXz2oTURTGv3MnpqhNKy1UWmxRTGdaiLSQRKkKIoK4FVrRPoHu7BMYn0B3+gQquuiuiC6kaFVsAhGEZkKqG/+Vrtp0YWsyR27KlEwz0xnnT3LgwjB37vl+97tzz9whdDiow/pwBCjofN0AJohwKQgkMxYF8Dmt0bxdnhaAQoWTXMczENJBhFvGMgqk4GY6SZXmPgvAmy/cnYijGqrwvmTVHSQup2jLvG0ByJf5EYDbUQIAeJxR6U4LQHGV1VodesTijfQxBdrkaSrL6z0Hlst8i4An7QBgYDar0lMrgM45ItxrCwDjflajnC+AtR8Gvn8zGpz9xwVOjor/Zma/ANt/GIsLNWxt8p7o4IiAmlLQP+C9pvkG+FoyUPxYs52xhFDPKIh3uRviG2ClWIdsTpHoJYymFNdliQzABBsaEZg4p+DwUftliRxAggwOC0xdidma1RaAI92Ea9OHOgcwPqlANruI1AElhsa2dBKXQJEBnDglGlvxWN/BNcE3gKyCS69b64AUlMISwEv4BpDJ3778i/Xfu5XQtFtaLq+9RiCA6gZj/dcuQN8Audod6kvodYZuz9k7UOK7JPDAbXAY/WxgLjtGDy2f408VPi8MLIUh4JbDELhwNknvLQDyQNoTh87AkFuCIP0E/NzcgWYeTC0bdrkNp6Lm9bc4YM4qr/NzEGaCzNJxLONFRqMbzf22JSu/wlcphhwzpsIAIcIHriGXGadX+/MdWDPflTjRxcH+kLYJhYtj5Piz4/0gF4YVNjk6DvAPDb0aMEr8/nEAAAAASUVORK5CYII= // @version 1.12.6.2 // @description 解除B站大会员观影限制,理论支持番剧和放映厅,不支持的视频请反馈留地址让我修复,或自行在代码搜索‘大会员’并添加识别div与语句。 // @author p7 // @require https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js // @match https://www.bilibili.com/bangumi/* // @match https://vip.parwix.com:4433/* // @match https://z1.m1907.cn/* // @match https://api.yueliangjx.com/* // @match https://showxi.xyz/* // @match https://okjx.cc/* // @match https://www.cuan.la/* // @run-at document-end // @grant GM_setValue // @grant GM_getValue // @grant GM_addStyle // @namespace https://greasyfork.org/users/789132 // @downloadURL none // ==/UserScript== (function () { /*1.11.6 mod区域*/ let originalInterfaceList = [{ "name": "Mao播放器", "category": "1", "url": " https://www.cuan.la/m3u8.php?url=" }, { "name": "Parwix", "category": "1", "url": "https://vip.parwix.com:4433/player/?url=" }, { "name": "m1907", "category": "1", "url": "https://z1.m1907.cn/?jx=" }, { "name": "月亮", "category": "1", "url": "https://api.yueliangjx.com/?url=" }, { "name": "showxi", "category": "1", "url": "https://showxi.xyz/mov/s/?sv=3&url=", "special": "多线" }, { "name": "OK", "category": "1", "url": "https://okjx.cc/?url=", "special": "多线" }, ]; /*mod区域结束*/ var CHANNEL_COUNT = 0 var MAX_DM_COUNT = 10 var player; var playerRect; var minpool = []; var domPool = []; var domtopdownPool = []; var listobj //1.11.6修复弹幕重复问题 let minpoolout = []; let lastvideotime = 0; //1.11.7全屏问题 //let lastplaywidth = 0; //1.12.1 set let dmblock_scroll; let dmblock_top; let dmblock_bottom; let dmblock_color; let dmblock_special; let buiSwitch = 'true'; let repeatSlider = false; let repeatP = 0; //去重概率[0-100] let opacitySlider = false; let opacityNum = 1; let fontSize = 25; let fontSizeSlider = false; let dmspeed = 1; //0.5-1.5 let dmspeedSlider = false; let dmArea = 1; let dmAreaSlider = false; let dmTextshadow; var distance = 25 let xmlhtml; //console.log(1, window.location.href) //1.12.2修补设置图标 function xmlToJson(xml) { // Create the return object var obj = {}; if (xml.nodeType == 1) { // element // do attributes if (xml.attributes.length > 0) { obj["@attributes"] = {}; for (var j = 0; j < xml.attributes.length; j++) { var attribute = xml.attributes.item(j); obj["@attributes"][attribute.nodeName] = attribute.nodeValue; } } } else if (xml.nodeType == 3) { // text obj = xml.nodeValue; } // do children if (xml.hasChildNodes()) { for (var i = 0; i < xml.childNodes.length; i++) { var item = xml.childNodes.item(i); var nodeName = item.nodeName; if (typeof (obj[nodeName]) == "undefined") { obj[nodeName] = xmlToJson(item); } else { if (typeof (obj[nodeName].push) == "undefined") { var old = obj[nodeName]; obj[nodeName] = []; obj[nodeName].push(old); } obj[nodeName].push(xmlToJson(item)); } } } return obj; }; //1.11.7 稳定发送 function postdownmessage(obj) { for (var posta = 0; posta <= 3; posta++) { try { window.frames[posta].postMessage(obj, '*'); } catch { } for (var postb = 0; postb <= 3; postb++) { try { window.frames[posta].frames[postb].postMessage(obj, '*'); } catch { } for (var postc = 0; postc <= 3; postc++) { try { window.frames[posta].frames[postb].frames[postc].postMessage(obj, '*'); } catch { } } } } } function getBV() { let bv = $("a.av-link[target='_blank']")[0] if (bv) { //console.log(bv.innerText); $.getJSON("https://api.bilibili.com/x/player/pagelist?bvid=" + bv.innerText, function (result) { xmlhtml = `https://api.bilibili.com/x/v1/dm/list.so?oid=${result.data[0].cid}` //ajax解析xml文件 console.log(xmlhtml); $.ajax({ url: xmlhtml, dataType: "xml", success: function (xml) { //console.log('xmllist', xmlToJson(xml)); let listjson = xmlToJson(xml) //console.log($('.bilibili-player-video-info-danmaku-number'), listjson.i.d.length) $('.bilibili-player-video-info-danmaku-number').text(listjson.i.d.length) //console.log(window.frames.length, listjson.i.d.length); postdownmessage({ obj: listjson, str: 'xmllist' }) } }) }) } else { setTimeout(function () { getBV() }, 500) } } function receiveInfoFromAnotherDomain() { //首先让window添加一个事件监听函数,表明它可以监听窗口对象的message事件 //它受到事件时,会先判断是否来自指定的Domain(不是所有Domain丢过来的事件它都处理的) window.addEventListener("message", function (ev) { switch (window.location.host) { case 'www.bilibili.com': //console.log(ev.origin, ' message to', window.location.href, ev.data); if (ev.origin != 'https://www.bilibili.com' && ev.origin != 'https://message.bilibili.com') { console.log(ev.origin, ' message to', window.location.href, ev.data); if (ev.data.str == 'hasplayer') { getBV() } } break default: window.top.postMessage({ fromweb: window.location.href, obj: ev.data, str: '来自iframe:', from: ev.origin }, '*'); switch (ev.data.str) { case 'xmllist': listobj = ev.data.obj; break; case 'checktrue': buiSwitch = 'true'; break; case 'checkfalse': buiSwitch = 'false'; break; case 'scrollon': dmblock_scroll = 'on'; //1.12.2点击隐藏滚动弹幕 for (let i = 0; i < CHANNEL_COUNT; i++) { for (let j = 0; j < domPool[i].length; j++) { $(domPool[i][j]).show(); } } break; case 'scrolloff': dmblock_scroll = 'off'; //1.12.2点击隐藏滚动弹幕 for (let i = 0; i < CHANNEL_COUNT; i++) { for (let j = 0; j < domPool[i].length; j++) { $(domPool[i][j]).hide(); } } break; case 'topon': dmblock_top = 'on'; break; case 'topoff': dmblock_top = 'off'; break; case 'bottomon': dmblock_bottom = 'on'; break; case 'bottomoff': dmblock_bottom = 'off'; break; case 'coloron': dmblock_color = 'on'; break; case 'coloroff': dmblock_color = 'off'; break; case 'repeatP': repeatP = ev.data.p; break; case 'opacityNum': opacityNum = ev.data.p; setdomOpacity(); break; case 'fontSize': fontSize = ev.data.p; setdomFontsize(); break; case 'dmspeed': dmspeed = ev.data.p; break; case 'dmArea': dmArea = ev.data.p; //refreshDom() break; case 'dmTextshadow': //1.12.6.1 dmTextshadow = ev.data.p; setdomTextshadow(); break; } } }) window.top.postMessage({ fromweb: window.location.href, obj: 'iframe监听初始化', str: '来自iframe:', }, '*'); } function detecH5Player(findplayertime) { player = document.querySelector('video'); if (player) { //console.log(window.location.href+'发现h5') receiveInfoFromAnotherDomain(); window.top.postMessage({ str: 'hasplayer', fromweb: window.location.href }, '*'); playerRect = player.getBoundingClientRect(); initcss(); player.addEventListener('pause', function () { //暂停开始执行的函数 $('.left').each(function (index, element) { element.style.willChange = 'auto' let domRect = element.getBoundingClientRect(); let domLeft = domRect.left - playerRect.left; $(element).css('transform', `translateX(${domLeft}px)`); //element.style.left = `${domLeft}px` $(element).css('transition', `transform 0s linear`); }) }); //1.11.7 document.addEventListener("fullscreenchange", function (e) { refreshDom() //player.clientWidth-lastplaywidth }) //lastplaywidth = player.clientWidth player.addEventListener('playing', function () { //暂停开始执行的函数 playtime = (new Date()).getTime() $('.left').each(function (index, element) { let domRect = element.getBoundingClientRect() let domLeft = domRect.left - playerRect.left let oldS = element.clientWidth + player.clientWidth let newS = element.clientWidth + domLeft let oldT = 0.0074 * (element.clientWidth + player.clientWidth) / dmspeed let newT = newS / oldS * oldT //console.log(element.clientWidth+','+player.clientWidth+','+oldS+','+newS+','+oldT+','+newT) $(element).css('transition', `transform ${newT}s linear`); $(element).addClass('left'); element.style.willChange = 'transform' //element.style.transform = `translateX(${-element.clientWidth - newS}px)`; element.style.transform = `translateX(${-element.clientWidth}px)`; }) }); player.addEventListener('timeupdate', function () { //window.top.postMessage({obj:'currentTime1:'+player.currentTime+' '+listobj.i.d.length+' '+minpool.length,str:'来自iframe:',from:window.location.href},'*'); //window.top.postMessage({obj:'currentTime1:'+player.currentTime+' '+ domPool.length+' '+ buiSwitch+' '+minpool.length ,str:'来自iframe:',from:window.location.href},'*'); //1.11.6 修复弹幕重复、前进后退清屏、后退重载弹幕 let lastlen = parseInt(lastvideotime / 60) let startlen = parseInt(player.currentTime / 60) if (lastvideotime > player.currentTime) { for (var c = startlen; c <= lastlen; c++) { if (minpoolout[c].length != 0) { minpool[c] = minpool[c].concat(minpoolout[c]) minpoolout[c].length = 0 } } refreshDomscreen() } else if (lastvideotime + 2 < player.currentTime) { refreshDomscreen() } lastvideotime = player.currentTime if (minpool.length == 0 && listobj) { minpool = new Array(parseInt(player.duration / 60)); let minlen = minpool.length for (var a = 0; a <= minlen; a++) { minpool[a] = [] } minpoolout = new Array(minlen); for (var b = 0; b <= minlen; b++) { minpoolout[b] = [] } let len = listobj.i.d.length //window.top.postMessage({obj:'listobj.i.d.length:'+listobj.i.d.length,str:'来自iframe:',from:window.location.href},'*'); for (var j = 0; j < len; j++) { let strp = listobj.i.d[j]['@attributes'].p let arrp = strp.split(','); let arrpJson = { "time": arrp[0], "type": arrp[1], "size": arrp[2], "rgb": arrp[3], "pool": arrp[5], "text": listobj.i.d[j]['#text'] }; try { minpool[parseInt(arrp[0] / 60)].push(arrpJson); } catch { } /* if (repeatP == 100 || repeatP > Math.floor(Math.random() * 100)) { let len2 = minpool[parseInt(arrp[0] / 60)].length let needpush = true for (var i = 0; i < len2; i++) { if (minpool[parseInt(arrp[0] / 60)][i].text == arrpJson.text&&minpool[parseInt(arrp[0] / 60)][i].time-arrpJson.time<1) { needpush = false; break; } } if (needpush == true) { try { minpool[parseInt(arrp[0] / 60)].push(arrpJson); } catch {} } } else { try { minpool[parseInt(arrp[0] / 60)].push(arrpJson); } catch {} }*/ /*window.top.postMessage({ obj: 'minpool push:' + minpool[parseInt(arrp[0] / 60)][minpool[parseInt(arrp[0] / 60)].length - 1], str: '来自iframe:', from: window.location.href }, '*');*/ } } //window.top.postMessage({obj:'currentTime:'+player.currentTime+' '+minpool.length+' '+domPool.length,str:'来自iframe:',from:window.location.href},'*'); $('.topdown').each(function (index, element) { if (element.innerText != '') { let nowtime = (new Date()).getTime(); let lasttime = parseInt(nowtime) - parseInt($(element).prop("name")) //console.log('lasttime:'+lasttime+' '+typeof lasttime); if (lasttime >= 4500) { //console.log('lasttime2:'+lasttime+' '+typeof lasttime); element.innerText = '' element.name = '' } } }); //window.top.postMessage({obj:buiSwitch.prop("checked"),str:'来自iframe:',from:window.location.href},'*'); if (minpool.length != 0 && domPool.length != 0 && buiSwitch == 'true') { let channel; let nowlen = parseInt(player.currentTime / 60); //console.log('currentTime:'+player.currentTime); //window.top.postMessage({ obj: 'currentTime:' + player.currentTime + ' ' + minpool[nowlen].length, str: '来自iframe:', from: window.location.href }, '*'); if (!$(player).paused) { for (var j = minpool[nowlen].length - 1; j > -1; j--) { //console.log('pool:'+minpool[nowlen][j].pool) //window.top.postMessage({obj:minpool[nowlen][j],str:'来自iframe:',from:window.location.href},'*'); if (minpool[nowlen][j].time >= player.currentTime && minpool[nowlen][j].time <= player.currentTime + 0.5 && minpool[nowlen][j].type == '1' && dmblock_scroll != 'off') { if (minpool[nowlen][j].rgb != '16777215' && dmblock_color == 'off') { continue } //1.12.3 重复判断 if (repeatP == 100 || repeatP > Math.floor(Math.random() * 100)) { let len2 = minpoolout[nowlen].length //let needpush = true for (var i = 0; i < len2; i++) { if (minpoolout[nowlen][i].text == minpool[nowlen][j].text && minpoolout[nowlen][i].time - minpool[nowlen][j].time < 1) { //console.log('重复') continue; } } } channel = getChannel() //console.log('channel:' + channel) if (channel != -1) { let arrpJson = minpool[nowlen][j] //console.log(minpool[nowlen][j].time+','+player.currentTime+' biu~ [' + minpool[nowlen][j].text + ']'); let dom = domPool[channel].shift() //把数组的第一个元素从其中删除 domPool[channel].push(dom); //向数组的末尾添加一个或多个元素 shootDanmu(dom, arrpJson, channel); minpoolout[nowlen].push(minpool[nowlen][j]) minpool[nowlen].splice(j, 1); } } else if (minpool[nowlen][j].time >= player.currentTime && minpool[nowlen][j].time <= player.currentTime + 0.5 && minpool[nowlen][j].type != '1') { if (minpool[nowlen][j].type == '4' && dmblock_bottom == 'off') { continue; } if (minpool[nowlen][j].type == '5' && dmblock_top == 'off') { continue; } if (minpool[nowlen][j].rgb != '16777215' && dmblock_color == 'off') { continue; } //1.12.3 重复判断 if (repeatP == 100 || repeatP > Math.floor(Math.random() * 100)) { let len2 = minpoolout[nowlen].length //let needpush = true for (var i = 0; i < len2; i++) { if (minpoolout[nowlen][i].text == minpool[nowlen][j].text && minpoolout[nowlen][i].time - minpool[nowlen][j].time < 1) { continue; } } } channel = gettopdownChannel(minpool[nowlen][j].type); //console.log('gettopdownChannel:' + channel); if (channel != -1) { let arrpJson = minpool[nowlen][j] //console.log(minpool[nowlen][j].time+','+player.currentTime+' biu~ [' + danmu + ']'); let dom = domtopdownPool[channel]; shoottopdownDanmu(dom, arrpJson, channel); minpoolout[nowlen].push(minpool[nowlen][j]) minpool[nowlen].splice(j, 1); } } } } } else if (buiSwitch == 'false') { refreshDomscreen(); } }) } else { // 轮询检测 setTimeout(function () { //console.log(window.location.href + '开始检测h5', findplayertime, new Date().getTime() - findplayertime); if (new Date().getTime() - findplayertime <= 5000) { detecH5Player(findplayertime) } }, 500) } } function refreshDomscreen() { //1.11.6 清除在场弹幕 $('.left').each(function (index, element) { $(element).css('transition', `transform 0s linear`); $(element).removeClass('left');//1.12.6补充 $(element).addClass('right'); element.style.left = 0 element.style.willChange = 'transform' element.style.transition = null; element.style.willChange = 'auto' element.style.transform = `translateX(${player.clientWidth}px)` //element.style.left = `${player.clientWidth}px` element.innerText = '' element.className = 'right'; }) for (let i = 0; i < CHANNEL_COUNT; i++) { try { domtopdownPool[i].innerText = '' } catch { } } $('.right').each(function (index, element) { element.style.left = 0 element.style.transform = `translateX(${player.clientWidth}px)` }) $('.left').each(function (index, element) { //element.removeEventListener('transitionend', recoverLiftdom(element)); //element.addEventListener('transitionend', recoverLiftdom(element)); }) } let scroll_on = ` ` let scroll_off = ` ` let top_on = ` ` let top_off = ` ` let bottom_on = ` ` let bottom_off = ` ` let color_on = ` ` let color_off = ` ` let special_on = ` ` let special_off = ` ` function initcss() { let css = `.right { position: absolute; visibility: hidden; white - space: nowrap; /*left: 700px; transform: translateX(700px);*/ }.left { position: absolute; white - space: nowrap; user - select: none; /* transition: transform 7s linear; 时间相同 越长的弹幕滑动距离越长 所以越快~ */ }.topdown { position: absolute; white - space: nowrap; user - select: none; }` GM_addStyle(css); refreshDom(); } function refreshDom() { let nowCHANNEL_COUNT = Math.floor((player.clientHeight / fontSize - 1) * dmArea); window.top.postMessage({ obj: { a: 'refreshDom', b: nowCHANNEL_COUNT - CHANNEL_COUNT, c: fontSize }, str: '来自iframe:', from: window.location.href }, '*'); if (nowCHANNEL_COUNT - CHANNEL_COUNT > 0) { // 先new一些span 重复利用这些DOM //for (let j = nowCHANNEL_COUNT; j > CHANNEL_COUNT; j--) { for (let j = 0; j < nowCHANNEL_COUNT - CHANNEL_COUNT; j++) { let doms = []; for (let i = 0; i < MAX_DM_COUNT; i++) { // 要全部放进player let dom = document.createElement('div'); //alert(fontSize) //dom.style.fontSize = fontSize + 'px'; dom.style.color = 'rgb(255,255,255)'; dom.style.fontFamily = 'SimHei, "Microsoft JhengHei", Arial, Helvetica, sans-serif' dom.style.fontWeight = 'bold' dom.style.opacity = '1' //不透明度 dom.style.textShadow = 'rgb(0, 0, 0) 1px 0px 1px, rgb(0, 0, 0) 0px 1px 1px, rgb(0, 0, 0) 0px -1px 1px, rgb(0, 0, 0) -1px 0px 1px'; dom.style.transform = `translateX(${player.clientWidth}px)` //dom.style.left = `${player.clientWidth}px` dom.style.willChange = 'auto' // 初始化dom的位置 通过设置className dom.className = 'right'; // DOM的通道是固定的 所以设置好top就不需要再改变了 //dom.style.top = (-j + Math.floor(player.clientHeight / fontSize) + 1) * fontSize + 'px'; dom.style.top = j * fontSize + 'px'; player.parentNode.appendChild(dom); // 放入改通道的DOM池 doms.push(dom); // 每次到transition结束的时候 就是弹幕划出屏幕了 将DOM位置重置 再放回DOM池 //dom.addEventListener('transitionend', recoverLiftdom(dom)); dom.addEventListener('transitionend', () => { dom.style.transition = null; dom.style.willChange = 'auto' dom.style.transform = `translateX(${player.clientWidth}px)` dom.innerText = '' dom.className = 'right'; }); } domPool.push(doms); //domPool.unshift(doms); window.top.postMessage({ obj: { a: 'domPool', b: domPool.length }, str: '来自iframe:', from: window.location.href }, '*'); let dom2 = document.createElement('div'); dom2.style.fontSize = fontSize + 'px'; dom2.style.color = 'rgb(255,255,255)'; dom2.style.fontFamily = 'SimHei, "Microsoft JhengHei", Arial, Helvetica, sans-serif' dom2.style.fontWeight = 'bold' dom2.style.opacity = '1' //不透明度 dom2.style.textShadow = 'rgb(0, 0, 0) 1px 0px 1px, rgb(0, 0, 0) 0px 1px 1px, rgb(0, 0, 0) 0px -1px 1px, rgb(0, 0, 0) -1px 0px 1px'; dom2.style.willChange = 'auto' //dom2.style.top = (-j + Math.floor(player.clientHeight / fontSize) + 1) * fontSize + 'px'; dom2.style.top = j * fontSize + 'px'; dom2.style.left = `${(player.clientWidth - dom2.clientWidth) / 2}px`; dom2.className = 'topdown'; player.parentNode.appendChild(dom2); domtopdownPool.push(dom2); //domtopdownPool.unshift(dom2); } } else { //1.11.7 删除多余dom CHANNEL_COUNT = nowCHANNEL_COUNT for (let j2 = nowCHANNEL_COUNT; j2 < CHANNEL_COUNT; j2++) { for (let i2 = 0; i2 < MAX_DM_COUNT; i2++) { let thisdom = domPool[j2][i2] thisdom.parentNode.removeChild(thisdom) } domPool[j2].length = 0 domPool.splice(j2, 1); //refreshDomscreen() let thistopdowndom = domtopdownPool[j2] thistopdowndom.parentNode.removeChild(thistopdowndom) domtopdownPool.splice(j2, 1); } } CHANNEL_COUNT = nowCHANNEL_COUNT /*//1.11.7 修改弹幕默认位置 $('.right').each(function (index, element) { element.style.transform = `translateX(${player.clientWidth}px)` }) $('.left').each(function (index, element) { element.removeEventListener('transitionend',recoverLiftdom(element)); element.addEventListener('transitionend',recoverLiftdom(element)); }) $('.topdown').each(function (index, element) { element.style.left = `${(player.clientWidth - element.clientWidth) / 2}px`; })*/ //1.12.6.1 $('.right').each(function (index, element) { element.style.transform = `translateX(${player.clientWidth}px)` }) //refreshDomscreen() let refreshDom_time = parseInt(player.currentTime / 60) if (minpool.length != 0) { minpool[refreshDom_time] = minpool[refreshDom_time].concat(minpoolout[refreshDom_time]) minpoolout[refreshDom_time].length = 0 } } function recoverLiftdom(dom) { dom.style.transition = null; dom.style.willChange = 'auto' dom.style.transform = `translateX(${player.clientWidth}px)` //dom.style.left = `${player.clientWidth}px` dom.innerText = '' dom.className = 'right'; } /** * 获取一个可以发射弹幕的通道 没有则返回-1 */ function getChannel() { for (let i = 0; i < CHANNEL_COUNT; i++) { for (let j = 0; j < domPool[i].length; j++) { let thisdom = domPool[i][j] let domRect = thisdom.getBoundingClientRect(); if (domRect.right <= playerRect.left) { recoverLiftdom(domPool[i][j]) } } } for (let i = 0; i < CHANNEL_COUNT; i++) { let lastNumPos = domPool[i].length - 1 let lastDom = domPool[i][lastNumPos]; //console.log('lastDom:'+lastDom) if (lastDom) { if (lastDom.className == 'right') { //console.log('捷径') return i } let lastDomPos = lastDom.getBoundingClientRect(); //console.log('lastDomPos.right:'+lastDomPos.right+'playerRect.right:'+playerRect.right) // 轨道中最后一个元素要求已经全部进入展示区域 if (lastDomPos.right > playerRect.right) { continue } let occupyS = lastDomPos.right - playerRect.left //console.log('playerRect.left:'+occupyS+'player.clientWidth:'+player.clientWidth) // 追及问题 if (player.clientWidth - occupyS < distance) { continue } for (let j = 0; j < domPool[i].length; j++) { if (domPool[i][j].className == 'right') { return i } } } } return -1; } function gettopdownChannel(type) { for (let i = 0; i < CHANNEL_COUNT; i++) { if (type == 4) { let lastNumPos = domtopdownPool.length - i - 1 let downDom = domtopdownPool[lastNumPos]; if (downDom.innerText == '') { return i } } else if (type == 5) { let lastNumPos2 = i let topDom = domtopdownPool[lastNumPos2]; if (topDom.innerText == '') { return i } } } return -1; } /** * 根据DOM和弹幕信息 发射弹幕 */ function shootDanmu(dom, arrpJson, channel) { dom.innerText = arrpJson.text; console.log(' biu1~ [' + arrpJson.text + ']' + channel, 0.0074 * (dom.clientWidth + player.clientWidth) / dmspeed); let num16 = parseInt(arrpJson.rgb).toString(16); dom.style.color = '#' + (Array(6).join(0) + num16).slice(-6); dom.style.fontSize = arrpJson.size * fontSize / 25 + 'px'; // 如果为每个弹幕设置 transition 可以保证每个弹幕的速度相同 这里没有保证速度相同 dom.style.transition = `transform ${0.0074 * (dom.clientWidth + player.clientWidth) / dmspeed}s linear`; // 设置弹幕的位置信息 性能优化 left -> transform //dom.style.transform = `translateX(${-dom.clientWidth - player.clientWidth}px)`; dom.style.transform = `translateX(${-dom.clientWidth}px)`; dom.style.willChange = 'transform'; dom.className = 'left'; } function shoottopdownDanmu(dom, arrpJson, channel) { //1.11.5 格式化居然把这function丢失了 dom.innerText = arrpJson.text; dom.name = new Date().getTime(); console.log(' biu2~ [' + arrpJson.text + ']' + channel); // + channel let num16 = parseInt(arrpJson.rgb).toString(16); dom.style.fontSize = arrpJson.size * fontSize / 25 + 'px'; dom.style.color = '#' + (Array(6).join(0) + num16).slice(-6); //dom.style.transform = `translateX(${(player.clientWidth - dom.clientWidth) / 2}px)`; dom.style.left = `${(player.clientWidth - dom.clientWidth) / 2}px`; } var $ = $ || window.$; /** * 共有方法 */ function commonFunction() { this.GMgetValue = function (name, value) { //得到存在本地的数据 return GM_getValue(name, value); }; this.GMsetValue = function (name, value) { //设置存在本地的数据 return GM_setValue(name, value); }; this.addScript = function (url) { //添加脚本 var s = document.createElement('script'); s.setAttribute('src', url); document.body.appendChild(s); }; } //全局统一变量 const commonFunctionObject = new commonFunction(); /** * 超级解析助手 * @param {Object} originalInterfaceList * @param {Object} playerNodes */ function superVideoHelper() { this.originalInterfaceList = originalInterfaceList; this.node = "#player_module"; this.innerParse = function (url) { //内嵌解析 $("#iframe-player").attr("src", url); }; this.operatOther = function () { switch (window.location.host) { case 'www.bilibili.com': receiveInfoFromAnotherDomain(); //this.addHtmlElements(); //console.log("检测是否为vip视频"); let findviptime = new Date().getTime(); let waitlimit = setInterval(() => { let viptextArr = [$(".bpx-player-toast-confirm").text(), $(".twp-title").text(), $(".video-float-hint-btn.hint-red").text(), $('.new-twp-btn.right.vip.blue').children('.current').text()]; let vipmatchArr = ['成为大会员', '付费观看', '成为大会员抢先看', '开通大会员观看']; //let arr2=['成为大会员', '开通大会员观看','正在观看预览,大会员免费看全片', '正在观看预览,付费观看完整版'] let intersection = viptextArr.filter(item => new Set(vipmatchArr).has(item)) //console.log(arr1,arr2,intersection); if (intersection.length != 0) { console.log("是vip视频"); this.videoreplace(); clearInterval(waitlimit); } if (new Date().getTime() - findviptime >= 5000) { clearInterval(waitlimit) } }, 250); //1.12.1 预防不能解锁vip视频的情况 //this.bottomArea() this.addHtmlElements() break default: try { detecH5Player(new Date().getTime()) this.setvipcss(); } catch (err) { console.log('h5:' + err) } break } } this.setvipcss = function () { switch (window.location.host) { case 'showxi.xyz': //1.12.5 修改showxi的css let starcss = new Date().getMilliseconds() starcssInterval = setInterval(function () { if (new Date().getMilliseconds() - starcss >= 3000) { clearInterval(starcssInterval); } else { $('.jconfirm-open').hide(); $('.player-url-tips').hide(); $(".play-box").children('div').eq(0).hide() $(".play-box").children('div').eq(1).hide() $('#palyer-iframe').css('height', '605px'); $('.play-box').css('width', '100%'); $('.play-box').css('top', '0px'); } }, 250); } } this.videoreplace = function () { //let safediv = window.document.querySelector("#player_placeholder") //1.11.6 修复m1907存在滚动条(才发现是滚动条) 修复基础不扎实且手贱导致的全屏问题 let videoPlayer = $("
"); let index = commonFunctionObject.GMgetValue("index"); //1.12.1 修复接口记忆 if (index == null) { index = '0' commonFunctionObject.GMsetValue("index", '0'); } let url2 = this.originalInterfaceList[index].url + window.location.href; //console.log(index, url2); if (document.getElementById("iframe-player") == null) { //1.11.5 尝试修复多重视频声音 www.cnblogs.com/dzyany/p/14187782.html let playerb = document.querySelector('video'); if (playerb) { playerb.pause(); //console.log('playerb.pause'); playerb.addEventListener('timeupdate', function () { playerb.pause(); //console.log('3playerb.pause'); }) playerb.removeAttribute('src'); playerb.currentSrc = ''; playerb.innerHTML = ''; } let playera = $(this.node); //console.log(playera) playera.empty(); playera.append(videoPlayer); //1.11.5添加底部区域 1.11.8修复底栏层次问题 this.bottomArea() } this.innerParse(url2); //1.11.5 修复移除vip提示bug let removetime = new Date().getTime(); let waitlimit = setInterval(() => { $(".player-limit-mask").remove(); $(".player-limit-mask pay").remove(); $(".twp-container").remove(); $(".twp-mask.twp-float").remove(); if (new Date().getTime() - removetime >= 5000) { clearInterval(waitlimit) } }, 250); } this.addHtmlElements = function () { var vipVideoImageBase64 = `data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAC9klEQVRoQ+2ZPWgVQRDH/7/CWqOIYOFHFbRSjJhGMGDpByoIago70cqvUtQgdipWFqawMWghGIidhcHKQAJqEURBRfED1CCCjc3IPu4em31775J7d3m8cAtX3O7szP7nPzszx6EeH/T4+VUD6DaDTQbMbE+3D7MY+8Ckkw8BPFuMki7KDtUAuuh9Z3oZMtBljxY2X9eBwq4raWPNQEmOLKxm+TBgZqsknQ1dAVzNco+ZhWsm6ZakHZLC1mQyrZ5OX2RvzMxnSa8lzQJ/YwLzGDCze5JOeoI/gbVtAMxJ6vPW7wKnkr4qbEuaxccDcGWBsfNV0mjMmSGAg5LGA6XbgFehITPbLel5MN84ZAUAUjMPgWO+zZY7YGbvJW0OvRoB8EjSEW9+BhhIvOvCp0wGfPPbgZfpRAzATUnn56GEmJyLd39cBNxeF99FADTa42BskuQef4wDh9oB2CXpRbDpMPA4nTOz05LuBDLrgW+dAACGIkxfkHTDm/8DrMwEkBxgOskkqdwEcMAD4GLf3YF0PACOe+uFGMgA4Bj4EAAbAGbcXLQOmNklSdeCTRuBT2bWL+lNsLYfeFIRgH2SJgJ7GwCXYjMBrJb0K9jUiHEzG5F02VubA9b4skXvQMiAmW2VdFSSn24/As0kk1mJzeyppL3ewaaBnWY2K2mLNz8S5ueCAMLwz3q/DZxreweSe3BC0v1Ai7tkYXrsB96WwMBCAfQBv3MBJCD+SVrhaXaZ54z3PgUMhpYrZKCF7bbNnJk5BhwT6fghyW8thoGxigE4my6tXwemQlt5AGI1oamDSIFLmCuURiW5BOGPL8C7drGV206b2XdJ6yJKxoDhmPKCIeS61ZZClncxFgLAtcyxrnEwRmknDFQFIFYTWnJ/CVmoGgYSj7Z81OR86Lg7sOgPmnY6s0IpN4TyYrDb6zWAmoEOPVCHUIcO7Hh7/YemYxcWU7AMf3BkNGDF/FP9rkwGqjddkoWWv5Ql6V1yNXUdWHKXBwZ7noH/dP+HQNqheToAAAAASUVORK5CYII=`; var category_1_html = ""; this.originalInterfaceList.forEach((item, index) => { if (item.category === "1") { category_1_html += "
  • " + item.name + "
  • "; } }); //获得自定义位置 var left = 0; var top = 100; var cssMould = `#vip_movie_box {cursor:pointer; position:fixed; top:` + top + `px; left:` + left + `px; width:0px; z-index:2147483647; font-size:16px; text-align:left;} #vip_movie_box .item_text {} #vip_movie_box .item_text .img_box{width:26px; height:35px;line-height:35px;text-align:center;background-color:#E5212E;} #vip_movie_box .item_text .img_box >img {width:20px; display:inline-block; vertical-align:middle;} #vip_movie_box .vip_mod_box_action {display:none; position:absolute; left:26px; top:0; text-align:center; background-color:#272930; border:1px solid gray;} #vip_movie_box .vip_mod_box_action li{border-radius:2px; font-size:12px; color:#DCDCDC; text-align:center; width:60px; line-height:21px; float:left; border:1px solid gray; padding:0 4px; margin:4px 2px;overflow:hidden;white-space: nowrap;text-overflow: ellipsis;-o-text-overflow:ellipsis;} #vip_movie_box .vip_mod_box_action li:hover{color:#E5212E; border:1px solid #E5212E;} #vip_movie_box li.selected{color:#E5212E; border:1px solid #E5212E;} #vip_movie_box .selected_text {margin-top:5px;} #vip_movie_box .selected_text .img_box{width:26px; height:35px;line-height:35px;text-align:center;background-color:#E5212E;} #vip_movie_box .selected_text .img_box >img {width:20px; height:20px;display:inline-block; vertical-align:middle;} #vip_movie_box .vip_mod_box_selected {display:none;position:absolute; left:26px; top:0; text-align:center; background-color:#F5F6CE; border:1px solid gray;} #vip_movie_box .vip_mod_box_selected ul{overflow-y: auto;} #vip_movie_box .vip_mod_box_selected li{border-radius:2px; font-size:12px; color:#393AE6; text-align:center; width:95px; line-height:27px; float:left; border:1px dashed gray; padding:0 4px; margin:4px 2px;display:block;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;} #vip_movie_box .vip_mod_box_selected li:hover{color:#E5212E; border:1px solid #E5212E;} #vip_movie_box .default-scrollbar-55678::-webkit-scrollbar{width:5px; height:1px;} #vip_movie_box .default-scrollbar-55678::-webkit-scrollbar-thumb{box-shadow:inset 0 0 5px rgba(0, 0, 0, 0.2); background:#A8A8A8;} #vip_movie_box .default-scrollbar-55678::-webkit-scrollbar-track{box-shadow:inset 0 0 5px rgba(0, 0, 0, 0.2); background:#F1F1F1;} `; GM_addStyle(cssMould); var htmlMould = `
    线路
      ` + category_1_html + `
    `; $("body").append(htmlMould); $(".item_text").on("mouseover", () => { $(".vip_mod_box_action").show(); }); $(".item_text").on("mouseout", () => { $(".vip_mod_box_action").hide(); }); $(".vip_mod_box_action li").each((liIndex, item) => { item.addEventListener("click", () => { //1.11.5同一操作 var index = parseInt($(item).attr("data-index")); commonFunctionObject.GMsetValue("index", index); this.videoreplace(); }); }); }; this.bottomArea = function () { $('#vip_movie_box').remove(); let playera = $(this.node); //1.11.5添加bottomArea let bottomcss = ` /*底部背景阴影*/ .bilibili-player-video-bottom-area { width: 100%; height: 46px; background-color: #fff; -webkit-box-shadow: 0 0 8px #e5e9ef; box-shadow: 0 0 8px #e5e9ef; -ms-flex-negative: 0; flex-shrink: 0; position: relative; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-align: center; -ms-flex-align: center; align-items: center; } /*1.11.8修复偏移*/ .bilibili-player-video-bottom-area::before { content: none } /*弹幕字体*/ .bilibili-player-video-info-danmaku-number { height: 14px; line-height: 14px; font-size: 14px; font-weight: 600; } /*视频信息文本格式*/ .bilibili-player-video-info { display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-flex: 0; -ms-flex: none; flex: none; -ms-flex-negative: 1; flex-shrink: 1; font-size: 12px; height: 16px; line-height: 14px; color: #505050; -webkit-box-pack: start; -ms-flex-pack: start; justify-content: flex-start; -webkit-box-align: center; -ms-flex-align: center; align-items: center; margin-right: 12px; width: 208px; white-space: nowrap; -webkit-box-align: end; -ms-flex-align: end; align-items: flex-end; overflow: hidden; padding: 0 12px 0 20px; } /*弹幕按钮本体*/ .bui-switch .bui-switch-input { position: absolute; width: 30px; height: 20px; border-radius: 10px; opacity: 0; margin: 0; cursor: pointer; z-index: 1; } /*弹幕按钮主体*/ .bui-switch .bui-switch-body { display: inline-block; width: 30px; height: 20px; outline: none; border-radius: 10px; -webkit-box-sizing: border-box; box-sizing: border-box; background: #757575; margin-right: 11px; } .bui-switch .bui-switch-input:checked+.bui-switch-label .bui-switch-body { background: #00a1d6; } /*弹幕按钮dot*/ .bui-switch .bui-switch-dot { top: 2px; left: 2px; border-radius: 100%; width: 16px; height: 16px; background-color: #fff; color: #757575; fill: #757575; line-height: 16px; text-align: center; -webkit-box-shadow: 0 3px 1px 0 rgba(0, 0, 0, .05), 0 2px 2px 0 rgba(0, 0, 0, .1), 0 3px 3px 0 rgba(0, 0, 0, .05); box-shadow: 0 3px 1px 0 rgba(0, 0, 0, .05), 0 2px 2px 0 rgba(0, 0, 0, .1), 0 3px 3px 0 rgba(0, 0, 0, .05); display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-align: center; -ms-flex-align: center; align-items: center; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; } .bui-switch .bui-switch-body, .bui-switch .bui-switch-dot { position: relative; -webkit-transition: all .3s; -o-transition: all .3s; transition: all .3s; -webkit-transform: translateZ(0); transform: translateZ(0); } .bui-switch .bui-switch-input:checked+.bui-switch-label .bui-switch-body .bui-switch-dot { left: 100%; margin-left: -18px; color: #00a1d6; fill: #00a1d6; } /*弹幕按钮图片*/ .bui-switch .bui-switch-dot span { display: inline-block; width: 10px; height: 10px; font-size: 0; } /*弹幕设置*/ /*bui*/ .bui-panel.bui-dark { border: none; background: rgba(0, 0, 0, .67); } .bui-panel { -webkit-box-pack: start; -ms-flex-pack: start; justify-content: flex-start; border-radius: 4px 4px 0 0; border: 1px solid #e2e2e2; background: #fff; overflow: hidden; } .bui { display: -webkit-box; display: -ms-flexbox; display: flex; vertical-align: middle; -webkit-box-align: center; -ms-flex-align: center; align-items: center; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; } .bui-panel-wrap { position: relative; -webkit-transition: all .25s; -o-transition: all .25s; transition: all .25s; -webkit-transform: translateZ(0); transform: translateZ(0); } .bui-panel-move { display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-align: end; -ms-flex-align: end; align-items: flex-end; height: 100%; -webkit-transform: translateX(0); transform: translateX(0); -webkit-transition: -webkit-transform .25s; transition: -webkit-transform .25s; -o-transition: transform .25s; transition: transform .25s; transition: transform .25s, -webkit-transform .25s; -webkit-transform: translateZ(0); transform: translateZ(0); } /*滑动条*/ .bui-slider { height: 12px; cursor: pointer; } .bui-slider .bui-track { position: relative; width: 100%; height: 2px; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-align: center; -ms-flex-align: center; align-items: center; } .bui-slider.bui-dark .bui-track .bui-bar-wrap, .bui-slider.bui-dark .bui-track .bui-step .bui-step-item .bui-step-dot { background: #505050; } .bui-slider .bui-track .bui-bar-wrap { position: absolute; top: 0; bottom: 0; left: 0; right: 0; border-radius: 1.5px; overflow: hidden; background: #e7e7e7; } .bui-slider .bui-track .bui-bar-wrap .bui-bar, .bui-slider .bui-track.bui-track-vertical .bui-bar-wrap .bui-bar { background: #00a1d6; background: var(--bpx-primary-color, #00a1d6); } .bui-slider .bui-track .bui-bar-wrap .bui-bar { position: absolute; -webkit-transform-origin: 0 0; transform-origin: 0 0; top: 0; bottom: 0; left: 0; right: 0; background: #00a1d6; will-change: transform; } .bui-slider .bui-track .bui-thumb { pointer-events: none; cursor: pointer; } .bui-slider .bui-track .bui-step { pointer-events: none; } .bui-slider .bui-track .bui-step .bui-step-item { position: absolute; width: 0; } .bui-slider .bui-track .bui-step .bui-step-item .bui-step-dot { height: 4px; width: 2px; background: #e5e9ef; border-radius: 1px; -webkit-transform: translate(-50%, -50%); transform: translate(-50%, -50%); } .bui-slider.bui-dark .bui-track .bui-bar-wrap, .bui-slider.bui-dark .bui-track .bui-step .bui-step-item .bui-step-dot { background: #505050; } .bui-slider .bui-track .bui-step .bui-step-item.bui-step-item-0 .bui-step-dot { -webkit-transform: translateY(-50%); transform: translateY(-50%); } .bui-slider .bui-track .bui-step .bui-step-item.bui-step-item-100 .bui-step-dot { -webkit-transform: translate(-100%, -50%); transform: translate(-100%, -50%); } .bui-slider .bui-track .bui-step .bui-step-item .bui-step-text { position: absolute; bottom: 6px; left: 50%; width: 100px; text-align: center; font-size: 12px; color: #999; -webkit-transform: translate(-50%, -50%); transform: translate(-50%, -50%); line-height: 12px; } .bui-slider.bui-dark .bui-track .bui-step .bui-step-item .bui-step-text { color: hsla(0, 0%, 100%, .8); } .bui-slider .bui-track .bui-step .bui-step-item.bui-step-item-0 .bui-step-text { text-align: left; -webkit-transform: translateY(-50%); transform: translateY(-50%); } .bui-slider .bui-track .bui-step .bui-step-item.bui-step-item-100 .bui-step-text { -webkit-transform: translate(-100%, -50%); transform: translate(-100%, -50%); text-align: right; } .bui-slider .bui-track .bui-thumb .bui-thumb-dot { width: 12px; height: 12px; border-radius: 50%; background-color: #00a1d6; display: -webkit-box; display: -ms-flexbox; display: flex; vertical-align: middle; -webkit-box-align: center; -ms-flex-align: center; align-items: center; } .bui-slider .bui-track .bui-thumb .bui-thumb-tooltip { position: absolute; top: -21px; left: 50%; -webkit-transform: translateX(-50%); transform: translateX(-50%); padding: 0 7px; line-height: 18px; height: 18px; font-size: 12px; background: rgba(21, 21, 21, .8); border-radius: 4px; color: #fff; opacity: 0; -webkit-transition: opacity .2s ease-in-out; -o-transition: opacity .2s ease-in-out; transition: opacity .2s ease-in-out; pointer-events: none; } /*选择框*/ .bui-checkbox { display: -webkit-inline-box; display: -ms-inline-flexbox; display: inline-flex; position: relative; cursor: pointer; -webkit-box-pack: start; -ms-flex-pack: start; justify-content: flex-start; } .bilibili-player .bui-checkbox .bui-checkbox-input:checked+.bui-checkbox-label .bui-checkbox-icon svg, .bilibili-player .bui-checkbox:hover .bui-checkbox-icon svg { fill: #00a1d6; fill: var(--bpx-primary-color, #00a1d6) } .bui-checkbox .bui-checkbox-input { position: absolute; width: 100%; height: 100%; left: 0; top: 0; opacity: 0; margin: 0; cursor: pointer; z-index: 1; } .bui-checkbox .bui-checkbox-label { display: -webkit-box; display: -ms-flexbox; display: flex; vertical-align: middle; -webkit-box-align: center; -ms-flex-align: center; align-items: center; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; } .bui-checkbox .bui-checkbox-icon { display: inline-block; width: 16px; height: 16px; margin-right: 4px; vertical-align: middle; } .bui-checkbox .bui-checkbox-icon svg { vertical-align: top; fill: #ccd0d7; -webkit-transition: all .2s; -o-transition: all .2s; transition: all .2s; -webkit-transform: translateZ(0); transform: translateZ(0); width: 16px; height: 16px; } .bui-checkbox.bui-dark .bui-checkbox-icon svg { fill: #fff; } .bui-checkbox .bui-checkbox-input:checked+.bui-checkbox-label .bui-checkbox-icon svg, .bui-checkbox:hover .bui-checkbox-icon svg { fill: #00a1d6; fill: var(--bpx-primary-color, #00a1d6); } .bui-checkbox .bui-checkbox-input:checked+.bui-checkbox-label .bui-checkbox-icon svg { fill: #00a1d6; } .bui-checkbox .bui-checkbox-input:checked+.bui-checkbox-label .bui-checkbox-icon-default { display: none; } .bui-checkbox .bui-checkbox-input:checked+.bui-checkbox-label .bui-checkbox-icon-selected { display: inline-block; } .bui-checkbox .bui-checkbox-icon-selected { display: none; } .bui-checkbox .bui-checkbox-name { vertical-align: middle; font-size: 12px; line-height: 12px; color: #222; -webkit-transition: all .2s; -o-transition: all .2s; transition: all .2s; -webkit-transform: translateZ(0); transform: translateZ(0); position: relative; } .bui-checkbox.bui-dark .bui-checkbox-name { color: #fff; } .bui-checkbox:hover .bui-checkbox-name { color: #00a1d6; color: var(--bpx-primary-color, #00a1d6) } /*设置主体1.12.2修复位置*/ .bilibili-player-video-danmaku-setting { fill: #757575; font-size: 0; height: 46px; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-align: center; -ms-flex-align: center; align-items: center; position: relative; width: 30px; height: 30px; line-height: 30px; margin-right: 11px; cursor: pointer; user-select: none; } /*设置图标1.12.2修复位置*/ .bilibili-player-video-danmaku-setting .bp-svgicon { height: 24px; } .bilibili-player-video-danmaku-setting .bp-svgicon span { display: inline-block; width: 24px; font-size: 0; position: absolute; cursor: pointer; z-index: 1; margin: middle; } .bilibili-player-video-danmaku-setting:hover .bp-svgicon span { color: #00a1d6; fill: #00a1d6; } /*设置显示提示*/ .bilibili-player-video-danmaku-setting:hover .bilibili-player-video-danmaku-setting-wrap { display: inline-block; } .bilibili-player-video-danmaku-setting-wrap { display: none; cursor: default; background: none; border: none; border-radius: 4px 4px 0 0; text-align: left; -webkit-box-sizing: border-box; box-sizing: border-box; width: 298px; height: 366px; font-size: 12px; z-index: 1001; /* 定位 */ position: absolute; bottom: 10px; /* 46px */ right: -149px; /*-149px */ /*margin-left: 0px;*/ } .bilibili-player-video-danmaku-setting-box { position: absolute; right: 0; bottom: 35px; } .bilibili-player-video-danmaku-setting-box { background: rgba(21, 21, 21, .9) !important; border-radius: 2px !important; } .bilibili-player-video-danmaku-setting-left { width: 100%; height: 100%; padding: 12px 20px; -webkit-box-sizing: border-box; box-sizing: border-box; } /*选项大致*/ .bilibili-player-video-danmaku-setting-left-area, .bilibili-player-video-danmaku-setting-left-fontsize, .bilibili-player-video-danmaku-setting-left-opacity, .bilibili-player-video-danmaku-setting-left-speedplus { display: -webkit-box; display: -ms-flexbox; display: flex; width: 100%; height: 16px; line-height: 16px; margin-bottom: 24px; } .bilibili-player-video-danmaku-setting-left-area-title, .bilibili-player-video-danmaku-setting-left-block-title, .bilibili-player-video-danmaku-setting-left-fontsize-title, .bilibili-player-video-danmaku-setting-left-opacity-title, .bilibili-player-video-danmaku-setting-left-speedplus-title { text-align: left; height: 16px; line-height: 16px; margin-bottom: 4px; color: #fff; } .bilibili-player-video-danmaku-setting-left-area-content, .bilibili-player-video-danmaku-setting-left-fontsize-content, .bilibili-player-video-danmaku-setting-left-opacity-content, .bilibili-player-video-danmaku-setting-left-speedplus-content { -webkit-box-flex: 1; -ms-flex: 1; flex: 1; width: 200px; height: 12px; margin-left: 10px; } /*选择框细节*/ .bilibili-player-video-danmaku-setting-left-danmaku-density, .bilibili-player-video-danmaku-setting-left-danmaku-mask, .bilibili-player-video-danmaku-setting-left-preventshade { margin-bottom: 12px; height: 16px; line-height: 16px; float: left; color: #212121; } .bilibili-player-video-danmaku-setting-left-danmaku-density, .bilibili-player-video-danmaku-setting-left-danmaku-mask { margin-left: 10px; } .bilibili-player-video-danmaku-setting-left-danmaku-density label:hover, .bilibili-player-video-danmaku-setting-left-danmaku-density label:hover .bpui-icon-checkbox.icon-12checkbox, .bilibili-player-video-danmaku-setting-left-danmaku-mask label:hover, .bilibili-player-video-danmaku-setting-left-danmaku-mask label:hover .bpui-icon-checkbox.icon-12checkbox, .bilibili-player-video-danmaku-setting-left-preventshade label:hover, .bilibili-player-video-danmaku-setting-left-preventshade label:hover .bpui-icon-checkbox.icon-12checkbox { -webkit-box-shadow: none !important; box-shadow: none !important } .bilibili-player-video-danmaku-setting-left-danmaku-density:hover .bpui-checkbox-text, .bilibili-player-video-danmaku-setting-left-danmaku-mask:hover .bpui-checkbox-text, .bilibili-player-video-danmaku-setting-left-preventshade:hover .bpui-checkbox-text { color: #00a1d6 } .bilibili-player-video-danmaku-setting-left-danmaku-density:hover .bpui-icon-checkbox.icon-12checkbox, .bilibili-player-video-danmaku-setting-left-danmaku-mask:hover .bpui-icon-checkbox.icon-12checkbox, .bilibili-player-video-danmaku-setting-left-preventshade:hover .bpui-icon-checkbox.icon-12checkbox { -webkit-box-shadow: none; box-shadow: none; border: 1px solid #00a1d6 } /*block*/ .bilibili-player-video-danmaku-setting-left-block { overflow: hidden; margin-bottom: 12px; } /*第一行打横*/ .bilibili-player-video-danmaku-setting-left-block-content { position: relative; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-sizing: border-box; box-sizing: border-box; height: 42px; overflow: hidden; cursor: pointer; } /*第一行图标行距*/ .bilibili-player-video-danmaku-setting-left-block-content .bilibili-player-block-filter-type { position: relative; width: 28px; height: 100%; margin: 0 22px 16px 0; -webkit-box-sizing: border-box; box-sizing: border-box; color: hsla(0, 0%, 100%, .8); -webkit-transition: all .2s ease-in-out; transition: all .2s ease-in-out; cursor: pointer; } /*第一行图标字体上色*/ .bilibili-player-video-danmaku-setting-left-block-content .bilibili-player-block-filter-type .bilibili-player-block-filter-image { /*position: relative;*/ display: inline-block; font-size: 0; width: 28px; height: 28px; line-height: 28px; top: -5px; color: hsla(0, 0%, 100%, .8); fill: hsla(0, 0%, 100%, .8); } /*ban弹幕图标字体*/ .bilibili-player-block-filter-type.bpx-player-active .bilibili-player-block-filter-label { color: #00a1d6!important; color: var(--bpx-fn-color,#00a1d6)!important; } /*ban弹幕图标上色*/ .bilibili-player-block-filter-type.bpx-player-active .bilibili-player-block-filter-image { color: #00a1d6!important; color: var(--bpx-fn-color,#00a1d6)!important; fill: #00a1d6!important; fill: var(--bpx-fn-color,#00a1d6)!important; } .bilibili-player-video-danmaku-setting-left-block-content .bilibili-player-block-filter-type .bilibili-player-block-filter-label { position: absolute; left: 0; bottom: -2px; -webkit-box-sizing: border-box; box-sizing: border-box; width: 100%; height: 16px; padding: 0; margin: 0; text-align: center; line-height: 16px; color: hsla(0, 0%, 100%, .8); font-size: 12px; -webkit-transition: none; transition: none; } .bilibili-player-video-danmaku-setting-left-block-content .bilibili-player-block-filter-type:hover .bilibili-player-block-filter-image { color: #fff; fill: #fff } .bilibili-player-video-danmaku-setting-left-block-content .bilibili-player-block-filter-type:hover .bilibili-player-block-filter-label { color: #fff } .bilibili-player-video-danmaku-setting-left-block-content .bilibili-player-block-filter-type.disabled .bilibili-player-block-filter-image { color: #00a1d6 !important; fill: #00a1d6 !important } .bilibili-player-video-danmaku-setting-left-block-content .bilibili-player-block-filter-type.disabled .bilibili-player-block-filter-label { color: #00a1d6 !important } /*flag*/ .bilibili-player-video-danmaku-setting-left-flag { display: -webkit-box; display: -ms-flexbox; display: flex; margin-bottom: 12px; font-size: 12px; line-height: 16px; } .bilibili-player-video-danmaku-setting-left-flag-title { -webkit-box-flex: 0; -ms-flex: none; flex: none; color: white; } .bilibili-player-video-danmaku-setting-left-flag-content { width: 100%; margin-left: 10px; padding-top: 2px; opacity: 1 } .bilibili-player-video-danmaku-setting-left-flag-content .bui-step { display: none } .bilibili-player-video-danmaku-setting-left-flag.bilibili-player-unchecked .bilibili-player-video-danmaku-setting-left-flag-content { position: relative } .bilibili-player-video-danmaku-setting-left-flag.bilibili-player-unchecked .bilibili-player-video-danmaku-setting-left-flag-content .bilibili-player-setting-flag { opacity: 0 } .bilibili-player-video-danmaku-setting-left-flag.bilibili-player-unchecked .bilibili-player-video-danmaku-setting-left-flag-content:after { display: inline-block; content: "全站视频将按等级屏蔽弹幕"; position: absolute; top: 0; left: 0; color: #999 } /*fontsize*/ .bilibili-player-video-danmaku-setting-left-fontsize { margin-bottom: 12px; } /*preventshade*/ .bilibili-player-video-danmaku-setting-left-preventshade { clear: left; margin-bottom: 14px; } /*block-word按钮*/ .bilibili-player-video-danmaku-setting-left-block-word { display: -webkit-box; display: -ms-flexbox; display: flex; width: 100%; line-height: 24px; -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; margin-bottom: 14px; text-align: center; cursor: pointer; } .bilibili-player-video-danmaku-setting-left-block-word .bilibili-player-video-danmaku-setting-left-block-add, .bilibili-player-video-danmaku-setting-left-block-word .bilibili-player-video-danmaku-setting-left-block-sync { width: 126px; border-radius: 2px; background: hsla(0, 0%, 100%, .3); cursor: pointer; color: white; } .bilibili-player-video-danmaku-setting-left-block-word .bilibili-player-video-danmaku-setting-left-block-add:hover, .bilibili-player-video-danmaku-setting-left-block-word .bilibili-player-video-danmaku-setting-left-block-sync:hover { background: hsla(0, 0%, 100%, .4); } /*更多设置*/ .bilibili-player-video-danmaku-setting-left .bilibili-player-video-danmaku-setting-left-more { clear: left; color: #fff; fill: #fff; line-height: 16px; height: 16px; text-align: left; cursor: pointer; position: relative; top: 4px; } .bilibili-player-video-danmaku-setting-left-more:hover, .bilibili-player-video-danmaku-setting-left-more:hover .bp-svgicon { color: #00a1d6; fill: #00a1d6; } /*箭头*/ .bilibili-player-video-danmaku-setting-left-more .bp-svgicon { position: absolute; right: 0; height: 16px; width: 16px; vertical-align: middle; margin-right: -3px; } .bilibili-player-video-danmaku-setting-left-more-text { vertical-align: middle; display: inline-block; -webkit-transition: color .3s; transition: color .3s; } /*线路整体*/ .bilibili-player-video-btn.bilibili-player-video-btn-quality { fill: #757575; font-size: 0; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-align: center; -ms-flex-align: center; align-items: center; position: relative; width: auto; height: 64px; line-height: 30px; margin-right: 11px; color: #fff; /*top: 5px;*/ user-select: none; } /*hover*/ .bilibili-player-video-btn-quality:hover .bui-select.bui-select-quality-menu .bui-select-list { opacity: 1; display: block; visibility: visible; } /*.bilibili-player-video-btn-quality:hover .bui-select.bui-select-quality-menu .bui-select-result { background: #00a1d6; }*/ .bui-select .bui-select-item:hover { background: #e7e7e7; } .bui-select.bui-dark .bui-select-item:hover { background: hsla(0, 0%, 100%, .1); } /*list*/ .bui-select.bui-select-quality-menu .bui-select-list { font-size: 12px; width: 169px; height: auto !important; text-align: left; background: rgba(21, 21, 21, .9); border-radius: 2px; padding: 0; -webkit-transition: all .2s; -o-transition: all .2s; transition: all .2s; -webkit-transform: translateZ(0); transform: translateZ(0); position: absolute; /* 定位 */ z-index: 1; bottom: 35px; left: 50%; margin-left: -84.5px; opacity: 0; display: none; } /*表面*/ .bui-select.bui-select-quality-menu .bui-select-result { /*background: #757575;*/ background-color: rgb(251, 114, 153); border-radius: 5px; /* font-weight: 600; */ width: 100%; user-select: none; cursor: pointer; display: block; padding: 0 2px; text-align: center; color: #fff; font-size: 12px; height: 16px; line-height: 16px; } /*选项格式*/ .bilibili-player-video-quality-menu.bui-select.bui-dark .bui-select-list .bui-select-item { padding: 0 12px; height: 36px; line-height: 36px; white-space: nowrap; color: #fff; cursor: pointer } .bilibili-player-video-subtitle-setting-color .bui-select-item>span, .bilibili-player-video-subtitle-setting-color .bui-select-result>span { vertical-align: middle } .bilibili-player-video-subtitle-setting-color .bui-select-item>span:first-child, .bilibili-player-video-subtitle-setting-color .bui-select-result>span:first-child { width: 12px; height: 12px; display: inline-block; border-radius: 2px; margin-right: 8px } .bui-select.bui-select-quality-menu .bui-select-item.bui-select-item-active { color: #00a1d6; } .bilibili-player-video-btn .bilibili-player-video-quality-menu .bilibili-player-bigvip { position: relative; color: #fff; background-color: #f25d8e; margin-left: 27px; padding: 0 5px; border-radius: 8px; height: 16px; line-height: 16px; -webkit-box-sizing: border-box; box-sizing: border-box; user-select: none; float: right; top: 28%; } /*文本*/ .bilibili-player-video-quality-text { user-select: none; } /*moreset*/ .bilibili-player-video-danmaku-setting-right { width: 100%; height: 100%; padding: 0 20px; -webkit-box-sizing: border-box; box-sizing: border-box } .bilibili-player-video-danmaku-setting-right .bui-select { display: -webkit-box; display: -ms-flexbox; display: flex } .bilibili-player-video-danmaku-setting-right-more { color: #fff; fill: #fff; line-height: 1; text-align: left; cursor: pointer; height: 32px; line-height: 32px } .bilibili-player-video-danmaku-setting-right-more-text { vertical-align: middle; display: inline-block; -webkit-transition: color .3s; transition: color .3s } .bilibili-player-video-danmaku-setting-right-more .bp-svgicon { width: 20px; height: 30px; vertical-align: middle; display: inline-block; cursor: pointer; margin-left: -3px } .bilibili-player-video-danmaku-setting-right-more:hover, .bilibili-player-video-danmaku-setting-right-more:hover .bp-svgicon { color: #00a1d6; fill: #00a1d6 } .bilibili-player-video-danmaku-setting-right-separator { width: 305px; border-bottom: 1px solid rgba(229, 233, 239, .1); position: relative; right: 20px } .bilibili-player-video-danmaku-setting-right-fullscreensync, .bilibili-player-video-danmaku-setting-right-speedsync { height: 16px; line-height: 16px; right: 2px } .bilibili-player-video-danmaku-setting-right-fullscreensync { margin-top: 12px; margin-bottom: 6px } .bilibili-player-video-danmaku-setting-right-font, .bilibili-player-video-danmaku-setting-right-speedsync { margin-bottom: 12px } .bilibili-player-video-danmaku-setting-right-font-content { float: left; margin-bottom: 12px } .bilibili-player-video-danmaku-setting-right-font-content .bpui-selectmenu { border-radius: 0 } .bilibili-player-video-danmaku-setting-right-font-content .bpui-selectmenu-list li { -webkit-box-sizing: border-box; box-sizing: border-box; width: 100%; height: 22px; line-height: 22px } .bilibili-player-video-danmaku-setting-right-font-content .bpui-selectmenu-list li:hover { background: #e7e7e7 } .bilibili-player-video-danmaku-setting-right-font-bold { color: #212121; float: left; height: 16px; line-height: 16px; position: relative; top: 4px; left: 14px } .bilibili-player-video-danmaku-setting-right-font-bold label:hover, .bilibili-player-video-danmaku-setting-right-font-bold label:hover .bpui-icon-checkbox.icon-12checkbox { -webkit-box-shadow: none !important; box-shadow: none !important } .bilibili-player-video-danmaku-setting-right-font-bold:hover .bpui-checkbox-text { color: #00a1d6 } .bilibili-player-video-danmaku-setting-right-font-bold:hover .bpui-icon-checkbox.icon-12checkbox { -webkit-box-shadow: none; box-shadow: none; border: 1px solid #00a1d6 } .bilibili-player-video-danmaku-setting-right-fontborder { clear: left; margin-bottom: 12px } .bilibili-player-video-danmaku-setting-right-fontborder-content.bpui-tab-list-type-button { width: 100% } .bilibili-player-video-danmaku-setting-right-fontborder-content .bpui-tab-list { width: 100%; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between } .bilibili-player-video-danmaku-setting-right-fontborder-content .bpui-tab-list .bpui-tab-list-row { width: 70px; height: 24px; line-height: 24px; cursor: pointer; color: #fff; background: #999; border-radius: 2px; padding: 0; margin: 0 } .bilibili-player-video-danmaku-setting-right-fontborder-content .bpui-tab-list .bpui-tab-list-row:hover { color: #fff; background: #757575 } .bilibili-player-video-danmaku-setting-right-fontborder-content .bpui-tab-list .bpui-tab-list-row.bpui-state-selected { color: #fff; padding: 0; margin: 0; background: #00a1d6 } .bilibili-player-video-danmaku-setting-right-type { margin-bottom: 12px } .bilibili-player-video-danmaku-setting-right-type .bpui-selectmenu { border-radius: 0 } .bilibili-player-video-danmaku-setting-right-type .bpui-selectmenu-list li { -webkit-box-sizing: border-box; box-sizing: border-box; width: 100%; height: 22px; line-height: 22px } .bilibili-player-video-danmaku-setting-right-type .bpui-selectmenu-list li:hover { background: #e7e7e7 } .bilibili-player-video-danmaku-setting-right-type-content { width: 166px; height: 24px; line-height: 24px } .bilibili-player-video-danmaku-setting-right-font-title, .bilibili-player-video-danmaku-setting-right-fontborder-title, .bilibili-player-video-danmaku-setting-right-type-title { clear: left; text-align: left; height: 16px; line-height: 16px; margin-bottom: 4px; color: #fff } /*选项与更多设置*/ .bui-panel-item.bui-panel-item-active { opacity: 1; pointer-events: auto; } .bui-panel-item { opacity: 0; pointer-events: none; -webkit-transition: opacity .1s; -o-transition: opacity .1s; transition: opacity .1s; -webkit-transform: translateZ(0); transform: translateZ(0); } .bui-panel-move { display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-align: end; -ms-flex-align: end; align-items: flex-end; height: 100%; -webkit-transform: translateX(0); transform: translateX(0); -webkit-transition: -webkit-transform .25s; transition: -webkit-transform .25s; -o-transition: transform .25s; transition: transform .25s; transition: transform .25s,-webkit-transform .25s; -webkit-transform: translateZ(0); transform: translateZ(0); } /*恢复默认*/ .bilibili-player-video-danmaku-setting-right-reset.bui-button { width: 116px; height: 22px; line-height: 22px; margin-top: 9px; color: #fff; border: 1px solid hsla(0,0%,100%,.2); vertical-align: middle; -webkit-box-align: center; -ms-flex-align: center; align-items: center; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; } .bilibili-player-video-danmaku-setting-right-reset:hover { color: #00a1d6; color: var(--bpx-fn-color,#00a1d6); border-color: #00a1d6; border-color: var(--bpx-fn-color,#00a1d6); } .bilibili-player-video-danmaku-setting-right-reset { min-width: 68px; font-size: 12px; font-size: var(--bpx-ui-font-size,12px); border-radius: 2px; -webkit-box-sizing: border-box; box-sizing: border-box; -webkit-transition: all .2s; -o-transition: all .2s; transition: all .2s; -webkit-transform: translateZ(0); transform: translateZ(0); background: none; padding: 3px; outline: none; color: inherit; text-align: inherit; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; } .bilibili-player-video-danmaku-setting-right-reset { width: 100%; height: 100%; display: -webkit-box; display: -ms-flexbox; display: flex; vertical-align: middle; -webkit-box-align: center; -ms-flex-align: center; align-items: center; -webkit-box-pack: start; -ms-flex-pack: start; justify-content: flex-start; line-height: normal; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } /*下拉选择框*/ /*表面*/ .bui-select.bui-dark .bui-select-border { border: 1px solid hsla(0,0%,100%,.2); } .bui-select .bui-select-border { border-radius: 2px; width: 100%; -webkit-box-sizing: border-box; box-sizing: border-box; font-size: 12px; font-size: var(--bpx-ui-font-size,12px); border: 1px solid silver; } .bilibili-player-video-danmaku-setting-right-font-content-fontfamily { width: 164px } .bilibili-player-video-danmaku-setting-right-font-content-fontfamilycustom { display: block; width: 166px; -webkit-box-sizing: border-box; box-sizing: border-box; height: 22px; line-height: 24px; margin-top: 10px } /*下拉表面*/ .bui-select-bscroll .bui-select-unfold .bui-select-list-wrap { height: auto!important; } .bui-select-bscroll .bui-select-list-wrap { height: 0; position: relative; overflow: hidden; color:white;/*附加*/ } .bui-select-bscroll .bui-select-list-wrap { height: 0; position: relative; overflow: hidden; display:none; } .bui-select.bui-dark .bui-select-header { height: 20px; line-height: 20px; color:white;/*附加*/ } .bui-select .bui-select-header { position: relative; padding: 0 22px 0 7px; height: 22px; line-height: 22px; } .bui-select-wrap:hover .bui-select-list-wrap{ display:block; } /*描边类型*/ .bui-radio .bui-radio-button .bui-radio-item { -webkit-box-flex: 1; -ms-flex: 1; flex: 1; text-align: center; } .bui-radio .bui-radio-item { position: relative; display: inline-block; } .bui-radio.bui-dark .bui-radio-button .bui-radio-input:checked+.bui-radio-label { background: #00a1d6; background: var(--bpx-fn-color, #00a1d6); } .bui-radio.bui-dark .bui-radio-button .bui-radio-item:hover .bui-radio-label { background-color: hsla(0, 0%, 100%, .4); } .bui-radio .bui-radio-button .bui-radio-input:checked+.bui-radio-label { background: #00a1d6; background: var(--bpx-fn-color, #00a1d6); } .bui-radio .bui-radio-button .bui-radio-item:hover .bui-radio-label { background-color: #757575; } .bui-radio.bui-dark .bui-radio-button .bui-radio-label { background-color: hsla(0, 0%, 100%, .3); } .bui-radio .bui-radio-button .bui-radio-label { background-color: #999; -webkit-transition: all .2s; -o-transition: all .2s; transition: all .2s; border-radius: 2px; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; padding: 2px 0; } .bui-radio .bui-radio-label { font-size: 12px; font-size: var(--bpx-ui-font-size, 12px); width: 100%; height: 100%; pointer-events: none; display: inline-block; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-align: center; -ms-flex-align: center; align-items: center; line-height: normal;/*.bui .bui-area*/ } /*返回*/ .bpx-player-dm-setting-right-more .bpx-common-svg-icon { width: 20px; height: 30px; vertical-align: middle; display: inline-block; cursor: pointer; margin-left: -3px; } ` GM_addStyle(bottomcss); //1.11.8 接口 let category_1_html = ""; originalInterfaceList.forEach((item, index) => { if (item.category == "1" && item.special) { category_1_html += `
  • ` + item.name + `` + item.special + `
  • `; } else { category_1_html += `
  • ` + item.name + `
  • `; } }); let bottomdiv = `
    条弹幕存在此弹幕池
    按类型屏蔽
    滚动
    顶部
    底部
    彩色
    高级
    去重概率
    0%
    不透明度
    100%
    显示区域
    1/4屏
    半屏
    防挡字幕
    不限
    弹幕速度
    100%
    字体大小
    100%
    浏览XML弹幕
    提取视频地址
    更多弹幕设置
    更多弹幕设置
    弹幕字体
    黑体
    • 黑体
    • 宋体
    • 新宋体
    • 仿宋
    • 微软雅黑
    • 微软雅黑 Light
    • Noto Sans DemiLight
    • Noto Sans Regular
    描边类型
    恢复默认设置
     大会员 
      ` + category_1_html + `
    `; playera.append(bottomdiv); //1.11.5修复移除关键div导致脚本失效 let playerPlaceholder = document.createElement('div'); playerPlaceholder.id = 'player_placeholder'; playera.append(playerPlaceholder); //console.log($(".bui-switch-input").prop("checked"),document.querySelector("#player_module > div.bilibili-player-video-bottom-area > div.bui-switch > input").checked) this.mouseEvent() this.setbili() } this.setbili = function () { //1.12.1 记忆功能 $(".bilibili-player-block-filter-type").each((liIndex, item) => { let blockdmname = $(item).attr("data-name") switch (blockdmname) { case 'ctlbar_danmuku_scroll_on': if (dmblock_scroll == 'off') { $(item).attr("data-name", 'ctlbar_danmuku_scroll_off') $(item).addClass("bpx-player-active") //$(item).find('use').attr("xlink:href", '#bpx-svg-sprite-dantype-scroll-disabled') this.setdamuicon('ctlbar_danmuku_scroll_off', scroll_off) for (let i = 0; i < CHANNEL_COUNT; i++) { try { domtopdownPool[i].innerText = '' } catch { } } } break; case 'ctlbar_danmuku_top_on': if (dmblock_top == 'off') { $(item).attr("data-name", 'ctlbar_danmuku_top_off') $(item).addClass("bpx-player-active") // $(item).find('use').attr("xlink:href", '#bpx-svg-sprite-dantype-top-disabled') this.setdamuicon('ctlbar_danmuku_top_off', top_off) } break; case 'ctlbar_danmuku_bottom_on': if (dmblock_bottom == 'off') { $(item).attr("data-name", 'ctlbar_danmuku_bottom_off') $(item).addClass("bpx-player-active") //$(item).find('use').attr("xlink:href", '#bpx-svg-sprite-dantype-bottom-disabled') this.setdamuicon('ctlbar_danmuku_bottom_off', bottom_off) } break; case 'ctlbar_danmuku_color_on': if (dmblock_color == 'off') { $(item).attr("data-name", 'ctlbar_danmuku_color_off') $(item).addClass("bpx-player-active") //$(item).find('use').attr("xlink:href", '#bpx-svg-sprite-dantype-color-disabled') this.setdamuicon('ctlbar_danmuku_color_off', color_off) } break; case 'ctlbar_danmuku_special_on': if (dmblock_special == 'off') { $(item).attr("data-name", 'ctlbar_danmuku_special_off') $(item).addClass("bpx-player-active") //$(item).find('use').attr("xlink:href", '#bpx-svg-sprite-dantype-advanced-disabled') this.setdamuicon('ctlbar_danmuku_special_off', special_off) } break; default: break; } }) //console.log(buiSwitch) if (buiSwitch == 'false') { $(".bui-switch-input").attr("checked", false); } //1.12.1接口记忆修复 let index = commonFunctionObject.GMgetValue("index"); $(".bilibili-player-video-btn-quality-mod").find('.bui-select-item').removeClass("bui-select-item-active"); $(".bilibili-player-video-btn-quality-mod").find('.bui-select-item').each(function (lindex, item) { if ($(item).attr("data-index") == index) { $(item).addClass("bui-select-item-active"); } }) //1.12.2去重 透明 设置 $(".bilibili-player-setting-flag").each((lindex, item) => { let sliderwidth = $(item).width() //console.log('repeatPrepeatPrepeatP',sliderwidth) if (sliderwidth == 0) { sliderwidth = 192 } //console.log('repeatPrepeatPrepeatP2',sliderwidth) $(item).find(".bui-bar-normal").css('transform', `scaleX(${parseInt(repeatP) / 100})`) $(item).find(".bui-thumb").css('transform', `translateX(${parseInt(repeatP) / 100 * sliderwidth}px)`) $(item).find(".bui-thumb-tooltip").text(`${parseInt(repeatP)}%`) }) $(".bilibili-player-setting-opacity").each((lindex, item) => { let sliderwidth = $(item).width() //console.log('opacityopacityopacity',sliderwidth) if (sliderwidth == 0) { sliderwidth = 192 } $(item).find(".bui-bar-normal").css('transform', `scaleX(${parseFloat(opacityNum)})`) $(item).find(".bui-thumb").css('transform', `translateX(${parseFloat(opacityNum) * sliderwidth}px)`) $(item).find(".bui-thumb-tooltip").text(`${parseInt(parseFloat(opacityNum) * 100)}%`) }) //1.12.3 字体大小 速度 区域 $(".bilibili-player-setting-speedplus").each((lindex, item) => { let sliderwidth = $(item).width() //console.log('repeatPrepeatPrepeatP',sliderwidth) if (sliderwidth == 0) { sliderwidth = 192 } //console.log('repeatPrepeatPrepeatP2',sliderwidth) $(item).find(".bui-bar-normal").css('transform', `scaleX(${dmspeed - 0.5})`) $(item).find(".bui-thumb").css('transform', `translateX(${(dmspeed - 0.5) * sliderwidth}px)`) $(item).find(".bui-thumb-tooltip").text(`${parseInt(dmspeed * 100)}%`) }) //1.12.4修复显示问题 $(".bilibili-player-setting-fontsize").each((lindex, item) => { let sliderwidth = $(item).width() //console.log('opacityopacityopacity',sliderwidth) if (sliderwidth == 0) { sliderwidth = 192 } $(item).find(".bui-bar-normal").css('transform', `scaleX(${parseFloat(fontSize / 25) - 0.5})`) $(item).find(".bui-thumb").css('transform', `translateX(${(parseFloat(fontSize / 25) - 0.5) * sliderwidth}px)`) $(item).find(".bui-thumb-tooltip").text(`${parseInt((fontSize / 25 - 0.5) * 100 - 50)}%`) }) $(".bilibili-player-setting-area").each((lindex, item) => { let sliderwidth = $(item).width() let sliderpct = 0 //console.log('opacityopacityopacity',sliderwidth) if (sliderwidth == 0) { sliderwidth = 192 } if (dmArea == 1) { sliderpct = 1 } else if (dmArea == 0.85) { sliderpct = 0.65 } else if (dmArea == 0.5) { sliderpct = 0.31 } else { sliderpct = 0 } $(item).find(".bui-thumb").css('transform', `translateX(${sliderpct * sliderwidth}px)`) }) //1.12.6.2描边记忆 $(".bui-radio-input").each((lindex, item) => { if ($(item).attr('value') == 0 && dmTextshadow == 'rgb(0, 0, 0) 1px 0px 1px, rgb(0, 0, 0) 0px 1px 1px, rgb(0, 0, 0) 0px -1px 1px, rgb(0, 0, 0) -1px 0px 1px') { $(item).attr("checked", "checked"); } else if ($(item).attr('value') == 1 && dmTextshadow == 'rgb(0, 0, 0) 0px 0px 1px, rgb(0, 0, 0) 0px 0px 1px, rgb(0, 0, 0) 0px 0px 1px') { $(item).attr("checked", "checked"); } else if ($(item).attr('value') == 2 && dmTextshadow == 'rgb(0, 0, 0) 1px 1px 2px, rgb(0, 0, 0) 0px 0px 1px') { $(item).attr("checked", "checked"); } }) } this.getset = function () { //1.12.1 记忆功能 dmblock_scroll = commonFunctionObject.GMgetValue("scroll"); if (dmblock_scroll == null) { dmblock_scroll = 'on' commonFunctionObject.GMsetValue("scroll", dmblock_scroll); } dmblock_top = commonFunctionObject.GMgetValue("top"); if (dmblock_top == null) { dmblock_top = 'on' commonFunctionObject.GMsetValue("top", dmblock_top); } dmblock_bottom = commonFunctionObject.GMgetValue("bottom"); if (dmblock_bottom == null) { dmblock_bottom = 'on' commonFunctionObject.GMsetValue("bottom", dmblock_bottom); } dmblock_color = commonFunctionObject.GMgetValue("color"); if (dmblock_color == null) { dmblock_color = 'on' commonFunctionObject.GMsetValue("color", dmblock_color); } dmblock_special = commonFunctionObject.GMgetValue("special"); if (dmblock_special == null) { dmblock_special = 'on' commonFunctionObject.GMsetValue("special", dmblock_special); } buiSwitch = commonFunctionObject.GMgetValue("buiSwitch"); if (buiSwitch == null) { buiSwitch = 'true' commonFunctionObject.GMsetValue("buiSwitch", buiSwitch); } repeatP = commonFunctionObject.GMgetValue('repeatP'); //console.log('去重读', repeatP,commonFunctionObject.GMgetValue('repeatP')) if (repeatP == null) { repeatP = '0' commonFunctionObject.GMsetValue("repeatP", repeatP); } //console.log('去重读2', repeatP,commonFunctionObject.GMgetValue('repeatP')) opacityNum = commonFunctionObject.GMgetValue('opacityNum'); //console.log('透明读', opacityNum,commonFunctionObject.GMgetValue('opacityNum')) if (opacityNum == null) { opacityNum = '1' commonFunctionObject.GMsetValue("opacityNum", opacityNum); } setdomOpacity(); fontSize = commonFunctionObject.GMgetValue('fontSize'); if (fontSize == null) { fontSize = '25' commonFunctionObject.GMsetValue("fontSize", fontSize); } setdomFontsize(); dmspeed = commonFunctionObject.GMgetValue('dmspeed'); if (dmspeed == null) { dmspeed = 1 commonFunctionObject.GMsetValue("dmspeed", dmspeed); } dmArea = commonFunctionObject.GMgetValue('dmArea'); if (dmArea == null) { dmArea = 1 commonFunctionObject.GMsetValue("dmArea", dmArea); } dmTextshadow = commonFunctionObject.GMgetValue('dmTextshadow'); if (dmTextshadow == null) { dmTextshadow = commonFunctionObject.GMsetValue("dmTextshadow", dmTextshadow); } } this.mouseEvent = function () { //1.11.5 弹幕开关 let buiSwitchbtn = $(".bui-switch-input"); buiSwitchbtn.click(function () { //let buiSwitchbtn = $(".bui-switch-input").prop("checked"); //console.log(buiSwitchbtn); if ($(".bui-switch-input").prop("checked")) { postdownmessage({ str: 'checktrue' }) commonFunctionObject.GMsetValue('buiSwitch', 'true'); //console.log(commonFunctionObject.GMgetValue("buiSwitch")) } else { postdownmessage({ str: 'checkfalse' }) commonFunctionObject.GMsetValue('buiSwitch', 'false'); } }); //1.11.8 滑块 $(".bui-slider").each(function () { $(this).mousedown( function (e) { //console.log('123123') let el = $(this) let sliderclass = el.attr('class') if (sliderclass.indexOf('bilibili-player-setting-flag') != -1) { repeatSlider = true; } else if (sliderclass.indexOf('bilibili-player-setting-opacity') != -1) { opacitySlider = true; } else if (sliderclass.indexOf('bilibili-player-setting-fontsize') != -1) { fontSizeSlider = true; } else if (sliderclass.indexOf('bilibili-player-setting-speedplus') != -1) { dmspeedSlider = true; //console.log('dmspeedSlider = true') } else if (sliderclass.indexOf('bilibili-player-setting-area') != -1) { dmAreaSlider = true; } } ) }) //1.12.4 滑块优化2 $('.bilibili-player-video-danmaku-setting-wrap').mousedown( function (e) { $(this).on('mousemove.drag', function (e) { let el let os let mouseX let itemlong //console.log(itemlong,mouseX) //alert(mouseX/$(this).width()) //console.log('mouseover') if (repeatSlider == true) { el = $('.bilibili-player-setting-flag') } else if (opacitySlider == true) { el = $('.bilibili-player-setting-opacity') } else if (fontSizeSlider == true) { el = $('.bilibili-player-setting-fontsize') } else if (dmspeedSlider == true) { el = $('.bilibili-player-setting-speedplus') //console.log('dmspeedSlider = true2') } else if (dmAreaSlider == true) { el = $('.bilibili-player-setting-area') } else { return } os = el.offset(); mouseX = e.pageX - os.left; itemlong = el.width() - 6; if (mouseX <= itemlong && mouseX >= -0.5) { //bilibili-player-setting-area let sliderpct = Math.ceil(mouseX / itemlong * 100) let sliderclass = el.attr('class') //alert(sliderclass.indexOf('bilibili-player-setting-area')) if (sliderclass.indexOf('bilibili-player-setting-area') != -1) { if (sliderpct > 83) { el.find(".bui-thumb").css('transform', `translateX(${itemlong}px)`) dmArea = 1 } else if (sliderpct > 49) { el.find(".bui-thumb").css('transform', `translateX(${itemlong * 0.65}px)` ) dmArea = 0.85 } else if (sliderpct > 16) { el.find(".bui-thumb").css('transform', `translateX(${itemlong * 0.31}px)` ) dmArea = 0.5 } else { el.find(".bui-thumb").css('transform', `translateX(${0}px)`) dmArea = 0.25 } } else { el.find(".bui-thumb").css('transform', `translateX(${mouseX}px)`) } el.find(".bui-bar-normal").css('transform', `scaleX(${sliderpct / 100})`) el.find(".bui-thumb-tooltip").css('opacity', `1`) if (sliderclass.indexOf('bilibili-player-setting-fontsize') != -1 || sliderclass.indexOf('bilibili-player-setting-speedplus') != -1) { el.find(".bui-thumb-tooltip").text(`${50 + sliderpct}%`) } else { el.find(".bui-thumb-tooltip").text(`${sliderpct}%`) } //$(".bilibili-player-video-info-danmaku-text").text(sliderpct) } }) }) //1.12.3滑块优化1 $('.bilibili-player-video-danmaku-setting-wrap').mouseup(function (e) { //console.log('mouseup') let slideron = true //1.12.2 去重和透明 if (repeatSlider == true) { repeatP = parseInt($(".bilibili-player-setting-flag").find('.bui-thumb-tooltip').text().replace("%", "")).toString() commonFunctionObject.GMsetValue('repeatP', repeatP); //console.log('去重写', repeatP,commonFunctionObject.GMgetValue('repeatP')) postdownmessage({ str: 'repeatP', p: repeatP }) } else if (opacitySlider == true) { opacityNum = (parseInt($(".bilibili-player-setting-opacity").find('.bui-thumb-tooltip').text().replace("%", "")) / 100).toString() commonFunctionObject.GMsetValue('opacityNum', opacityNum); //console.log('透明写', opacityNum,commonFunctionObject.GMgetValue('opacityNum')) postdownmessage({ str: 'opacityNum', p: opacityNum }) } else if (fontSizeSlider == true) { fontSize = (Math.round($(".bilibili-player-setting-fontsize").find('.bui-thumb-tooltip').text().replace("%", "") / 100 * 25)).toString() commonFunctionObject.GMsetValue('fontSize', fontSize); //console.log('fontSize写', fontSize,commonFunctionObject.GMgetValue('fontSize')) postdownmessage({ str: 'fontSize', p: fontSize }) } else if (dmspeedSlider == true) { dmspeed = $(".bilibili-player-setting-speedplus").find('.bui-thumb-tooltip').text().replace("%", "") / 100 commonFunctionObject.GMsetValue('dmspeed', dmspeed); //console.log('dmspeed写', dmspeed,commonFunctionObject.GMgetValue('dmspeed')) postdownmessage({ str: 'dmspeed', p: dmspeed }) } else if (dmAreaSlider == true) { commonFunctionObject.GMsetValue('dmArea', dmArea); //console.log('dmArea写', dmArea,commonFunctionObject.GMgetValue('dmArea')) postdownmessage({ str: 'dmArea', p: dmArea }) } else { slideron = false } if (slideron == true) { repeatSlider = false; opacitySlider = false; fontSizeSlider = false; dmspeedSlider = false; dmAreaSlider == false; $('.bilibili-player-video-danmaku-setting-wrap').off('mousemove.drag'); $(".bui-slider").find(".bui-thumb-tooltip").css('opacity', `0`) } }) //1.11.8 接口按钮 1.12.6 缩小范围 $(".bilibili-player-video-quality-menu").find(".bui-select-item").each((liIndex, item) => { item.addEventListener("click", () => { $(".bui-select-item").removeClass("bui-select-item-active"); $(item).addClass("bui-select-item-active") let index = parseInt($(item).attr("data-index")); commonFunctionObject.GMsetValue('index', index); this.videoreplace(); }); }); //1.12.1 设置按钮 //浏览XML弹幕 $('.bilibili-player-video-danmaku-setting-left-block-add').click(function () { if (xmlhtml != null) { window.open(xmlhtml) } else { let bv = $("a.av-link[target='_blank']")[0] if (bv) { $.getJSON("https://api.bilibili.com/x/player/pagelist?bvid=" + bv.innerText, function (result) { xmlhtml = `https://api.bilibili.com/x/v1/dm/list.so?oid=${result.data[0].cid}` }) } window.open(xmlhtml) } }) $('.bilibili-player-video-danmaku-setting-left-block-sync').click(function () { //commonFunctionObject.GMopenInTab("https://showxi.xyz/mov/s/?sv=3&url="+window.location.href, false); window.open("https://xbeibeix.com/api/bilibili/?monkey=" + window.location.href) }) //1.12.6 更多设置显示 $(".bilibili-player-video-danmaku-setting-left-more").click(function () { $(".bui-panel-item").each(function () { //alert($(this).attr('style')) if ($(this).attr('class').indexOf('bui-panel-item-active') != -1) { $(this).removeClass('bui-panel-item-active') } else { $(this).addClass('bui-panel-item-active') } }); //alert($(".bui-panel-move").attr('style')) $(".bui-panel-move").css('transform', 'translateX(-298px)') $(".bui-panel-wrap").css('width', '266px') $(".bui-panel-wrap").css('height', '250px') }) $(".bilibili-player-video-danmaku-setting-right-more").click(function () { $(".bui-panel-item").each(function () { //alert($(this).attr('style')) if ($(this).attr('class').indexOf('bui-panel-item-active') != -1) { $(this).removeClass('bui-panel-item-active') } else { $(this).addClass('bui-panel-item-active') } }); //alert($(".bui-panel-move").attr('style')) $(".bui-panel-move").css('transform', 'translateX(0px)') $(".bui-panel-wrap").css('width', '298px') $(".bui-panel-wrap").css('height', '366px') }) //1.12.6.1字体描边按键 $(".bui-radio-item").click(function () { let radioval = $(this).children('.bui-radio-input').attr('value') if (radioval == 0) { dmTextshadow = 'rgb(0, 0, 0) 1px 0px 1px, rgb(0, 0, 0) 0px 1px 1px, rgb(0, 0, 0) 0px -1px 1px, rgb(0, 0, 0) -1px 0px 1px' } else if (radioval == 1) { dmTextshadow = 'rgb(0, 0, 0) 0px 0px 1px, rgb(0, 0, 0) 0px 0px 1px, rgb(0, 0, 0) 0px 0px 1px' } else if (radioval == 2) { dmTextshadow = 'rgb(0, 0, 0) 1px 1px 2px, rgb(0, 0, 0) 0px 0px 1px' } //console.log('radioval',radioval,dmTextshadow) commonFunctionObject.GMsetValue('dmTextshadow', dmTextshadow); postdownmessage({ str: 'dmTextshadow', p: dmTextshadow }) }) //屏蔽弹幕类型 $(".bilibili-player-block-filter-type").each((liIndex, item) => { item.addEventListener("click", () => { let blockdmname = $(item).attr("data-name") let blockdmtype = $(item).attr("ftype") //console.log(blockdmname) switch (blockdmname) { case 'ctlbar_danmuku_scroll_on': $(item).attr("data-name", 'ctlbar_danmuku_scroll_off') $(item).addClass("bpx-player-active") //$(item).find('use').attr("xlink:href", '#bpx-svg-sprite-dantype-scroll-disabled') commonFunctionObject.GMsetValue(blockdmtype, 'off'); postdownmessage({ str: blockdmtype + 'off' }) //1.12.2 修复分类屏蔽图标 this.setdamuicon('ctlbar_danmuku_scroll_off', scroll_off) break; case 'ctlbar_danmuku_scroll_off': $(item).attr("data-name", 'ctlbar_danmuku_scroll_on') $(item).removeClass("bpx-player-active") //$(item).find('use').attr("xlink:href", '#bpx-svg-sprite-dantype-scroll') commonFunctionObject.GMsetValue(blockdmtype, 'on'); postdownmessage({ str: blockdmtype + 'on' }) //1.12.2 修复分类屏蔽图标 this.setdamuicon('ctlbar_danmuku_scroll_on', scroll_on) break; case 'ctlbar_danmuku_top_on': $(item).attr("data-name", 'ctlbar_danmuku_top_off') $(item).addClass("bpx-player-active") //$(item).find('use').attr("xlink:href", '#bpx-svg-sprite-dantype-top-disabled') commonFunctionObject.GMsetValue(blockdmtype, 'off'); this.setdamuicon('ctlbar_danmuku_top_off', top_off) postdownmessage({ str: blockdmtype + 'off' }) break; case 'ctlbar_danmuku_top_off': $(item).attr("data-name", 'ctlbar_danmuku_top_on') $(item).removeClass("bpx-player-active") //$(item).find('use').attr("xlink:href", '#bpx-svg-sprite-dantype-top') this.setdamuicon('ctlbar_danmuku_top_on', top_on) commonFunctionObject.GMsetValue(blockdmtype, 'on'); postdownmessage({ str: blockdmtype + 'on' }) break; case 'ctlbar_danmuku_bottom_on': $(item).attr("data-name", 'ctlbar_danmuku_bottom_off') $(item).addClass("bpx-player-active") //$(item).find('use').attr("xlink:href", '#bpx-svg-sprite-dantype-bottom-disabled') this.setdamuicon('ctlbar_danmuku_bottom_off', bottom_off) commonFunctionObject.GMsetValue(blockdmtype, 'off'); postdownmessage({ str: blockdmtype + 'off' }) break; case 'ctlbar_danmuku_bottom_off': $(item).attr("data-name", 'ctlbar_danmuku_bottom_on') $(item).removeClass("bpx-player-active") //$(item).find('use').attr("xlink:href", '#bpx-svg-sprite-dantype-bottom') this.setdamuicon('ctlbar_danmuku_bottom_on', bottom_on) commonFunctionObject.GMsetValue(blockdmtype, 'on'); postdownmessage({ str: blockdmtype + 'on' }) break; case 'ctlbar_danmuku_color_on': $(item).attr("data-name", 'ctlbar_danmuku_color_off') $(item).addClass("bpx-player-active") //$(item).find('use').attr("xlink:href", '#bpx-svg-sprite-dantype-color-disabled') commonFunctionObject.GMsetValue(blockdmtype, 'off'); this.setdamuicon('ctlbar_danmuku_color_off', color_off) postdownmessage({ str: blockdmtype + 'off' }) break; case 'ctlbar_danmuku_color_off': $(item).attr("data-name", 'ctlbar_danmuku_color_on') $(item).removeClass("bpx-player-active") //$(item).find('use').attr("xlink:href", '#bpx-svg-sprite-dantype-color') this.setdamuicon('ctlbar_danmuku_color_on', color_on) commonFunctionObject.GMsetValue(blockdmtype, 'on'); postdownmessage({ str: blockdmtype + 'on' }) break; case 'ctlbar_danmuku_special_on': $(item).attr("data-name", 'ctlbar_danmuku_special_off') $(item).addClass("bpx-player-active") //$(item).find('use').attr("xlink:href", '#bpx-svg-sprite-dantype-advanced-disabled') this.setdamuicon('ctlbar_danmuku_special_off', special_off) commonFunctionObject.GMsetValue(blockdmtype, 'off'); postdownmessage({ str: blockdmtype + 'off' }) break; case 'ctlbar_danmuku_special_off': $(item).attr("data-name", 'ctlbar_danmuku_special_on') $(item).removeClass("bpx-player-active") //$(item).find('use').attr("xlink:href", '#bpx-svg-sprite-dantype-advanced') this.setdamuicon('ctlbar_danmuku_special_on', special_on) commonFunctionObject.GMsetValue(blockdmtype, 'on'); postdownmessage({ str: blockdmtype + 'on' }) break; default: break; } }) }) } this.start = function () { this.operatOther(); this.getset(); } this.setdamuicon = function (blockname, iconspan) { $('.bilibili-player-block-filter-type').each((liIndex, item) => { let blockdmname = $(item).attr("data-name") //console.log('blockdmnameblockdmname',blockdmname,blockname) if (blockdmname == blockname) { $(item).find('.bilibili-player-block-filter-image').empty() $(item).find('.bilibili-player-block-filter-image').append(iconspan) } }) } } //1.12.2调节透明 function setdomOpacity() { //commonFunctionObject.GMsetValue('opacityNum', opacityNum); for (let i = 0; i < CHANNEL_COUNT; i++) { for (let j = 0; j < domPool[i].length; j++) { $(domPool[i][j]).css('opacity', parseFloat(opacityNum)); } } for (let i2 = 0; i2 < CHANNEL_COUNT; i2++) { $(domtopdownPool[i2]).css('opacity', parseFloat(opacityNum)); } } //1.12.3调节字体大小 function setdomFontsize() { //commonFunctionObject.GMsetValue('fontSize', fontSize); //CHANNEL_COUNT = Math.floor(player.clientHeight / fontSize) - 1; for (let i = 0; i < CHANNEL_COUNT; i++) { for (let j = 0; j < domPool[i].length; j++) { //$(domPool[i][j]).css('fontSize', fontSize); $(domPool[i][j]).css('top', fontSize * i + 'px'); //$(domPool[i][j]).css('top', (-j + Math.floor(player.clientHeight / fontSize) + 1) * fontSize + 'px'); //refreshDom() } } for (let i2 = 0; i2 < CHANNEL_COUNT; i2++) { //$(domtopdownPool[i2]).css('fontSize', fontSize); $(domtopdownPool[i2]).css('top', fontSize * i2 + 'px'); //$(domtopdownPool[i2]).css('top', (-j + Math.floor(player.clientHeight / fontSize) + 1) * fontSize + 'px'); //CHANNEL_COUNT = Math.floor(player.clientHeight / fontSize) - 1; //refreshDom() } } //1.12.6.1 描边类型 function setdomTextshadow() { for (let i = 0; i < CHANNEL_COUNT; i++) { for (let j = 0; j < domPool[i].length; j++) { //let cssText = $(domPool[i][j]).attr("style") + ";"+cssval; //$(domPool[i][j]).cssText(cssText); //$(domPool[i][j]).css('text-shadow', dmTextshadow); domPool[i][j].style.textShadow = dmTextshadow } } for (let i2 = 0; i2 < CHANNEL_COUNT; i2++) { //let cssText2 = $(domtopdownPool[i2]).attr("style") + ";"+cssval; //$(domtopdownPool[i2]).cssText(cssText2); //$(domPool[i][j]).css('text-shadow', dmTextshadow); domtopdownPool[i2].style.textShadow = dmTextshadow } //console.log($(domtopdownPool[CHANNEL_COUNT-1]),cssval) } (new superVideoHelper()).start(); })()