哔哩哔哩视频3倍数播放,Alt+0隐藏/显示脚本界面
// ==UserScript==
// @name 视频3倍数播放
// @namespace http://tampermonkey.net/
// @version 2025-01-15
// @description 哔哩哔哩视频3倍数播放,Alt+0隐藏/显示脚本界面
// @author I6xn-Xc
// @match *://www.bilibili.com/video/*
// @icon https://www.google.com/s2/favicons?sz=64&domain=undefined.localhost
// @grant none
// ==/UserScript==
(function() {
'use strict';
const style = document.createElement('style');
style.innerHTML = `
#box-all {
position: absolute;
width: 280px; /* 增加宽度以确保有足够空间 */
height: 180px;
top: 100px;
z-index: 9999; /* 提高z-index值 */
background-color: rgba(255, 255, 255, 0.9); /* 添加背景色以提高可见性 */
border: 1px solid #ccc;
padding: 10px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}
.form-group {
display: flex;
align-items: center; /* 垂直居中 */
margin-bottom: 10px; /* 控制组之间的间距 */
margin-top: 36px;
}
.form-group span {
margin-right: 10px; /* 控制 label 和 input 之间的间距 */
min-width: 60px; /* 确保标签宽度一致 */
text-align: right; /* 右对齐标签文本 */
}
.inp_all {
width: 60px; /* 增加输入框宽度 */
height: 30px;
border-radius: 5px;
border: 1px solid #8BC34A;
}
#box-all button {
z-index: 9998; /* 提高z-index值 */
height: 40px; /* 固定高度 */
width: auto; /* 自适应宽度 */
min-width: 80px; /* 最小宽度 */
text-align: center;
border-radius: 30px;
margin-top: 10px;
background-color: transparent;
box-shadow: 0 0 5px rgba(255, 255, 255, 0.1);
cursor: pointer;
color: #424242;
border: 1px solid #132217;
flex-grow: 1; /* 让按钮在容器中均匀分布 */
}
#disabled-but {
margin-left: 10px; /* 调整间距 */
}
#but-box {
display: flex;
justify-content: space-between; /* 水平排列 */
align-items: center; /* 垂直居中 */
margin-top: 50px;
flex-wrap: nowrap; /* 确保不换行 */
}
`;
document.head.appendChild(style);
const box_all = document.createElement('div');
box_all.id = 'box-all';
box_all.innerHTML = `
<div class="form-group">
<span>倍数</span>
<input id="speed--inp" class="inp_all" type="text" placeholder="Speed" value="1">
</div>
<div id="but-box">
<button id="btn-sub">设置</button>
<button id="disabled-but">隐藏按钮</button>
</div>
`;
document.body.appendChild(box_all);
let btt_sub = document.getElementById('btn-sub');
let btt_dis = document.getElementById('disabled-but');
let speed_num = document.getElementById('speed--inp');
let my_speed = '';
let initialHref = '';
document.getElementsByTagName("video")[0].classList.add('real-video')
let real_video=document.querySelector('.real-video');
const regex = /\/video\/(BV[0-9A-Za-z]+)/;
function isNumeric(value) {
return !isNaN(parseFloat(value)) && isFinite(value);
}
// sub按钮点击
btt_sub.addEventListener('click', () => {
if (isNumeric(speed_num.value)) {
// 输入的是数字
initialHref=location.href.match(regex)[1]
my_speed = speed_num.value;
alert(`设置倍数-->${my_speed}`)
if (my_speed !== '') {
my_speed=speed_num.value;
real_video.playbackRate=parseFloat(my_speed);
}
} else {
alert('输入框内请输入整数,speed默认不输为1')
}
});
function handleVideoPlay(e){
e.target.classList.add('real-video');
my_speed=my_speed===''?'1':my_speed;
if (location.href.match(regex)[1]===initialHref){
// 同一个合集
real_video.playbackRate = parseFloat(my_speed);
}else {
}
}
document.addEventListener('play', handleVideoPlay, true);
// 按钮隐藏
btt_dis.addEventListener('click', () => {
box_all.style.display = 'none'; // 隐藏整个 div
});
document.addEventListener('keydown', function (event) {
if (event.altKey && event.key === '0') {
if (box_all.style.display === 'block') {
box_all.style.display = 'none'
} else {
box_all.style.display = 'block'
}
}
});
})();