主题 Dark+ 在 v0.3.3
中更新的一个小功能, 可以使用自定义块属性为视频块/音频块设置一个时间戳, 按住 Ctrl 键后单击视频块/音频块的空白处即可跳转到指定的时间
- 自定义属性名:
time
- 自定义属性值: 满足正则表达式
^(\d+)(:[0-5]?[0-9]){0,2}(\.\d*)?$
ss
:ss >= 0
ss.ms
:ss >= 0 && ms >= 0
mm:ss
:mm >= 0 && 0 <= ss <= 59
mm:ss.ms
:mm >= 0 && 0 <= ss <= 59 && ms >= 0
hh:mm:ss
:hh >= 0 && 0 <= mm <= 59 && 0 <= ss <= 59
hh:mm:ss.ms
:hh >= 0 && 0 <= mm <= 59 && 0 <= ss <= 59 && ms >= 0
- 示例:
3661
,3661.246
,61:1
,61.1.246
,61:01
,61.01.246
,01:01:01
,01:01:01.246
,1:1:1
,1:1:1.246
若未安装 Dark+ 主题, 可以将如下文件放到所使用主题目录下即可
- 文件名:
theme.js
var config = {
timestamp: {
// 视频/音频时间戳
enable: true, // 是否启用时间戳
attribute: 'custom-time', // 自定义块属性名称
},
hotkeys: {
// 快捷键
timestamp: {
jump: {
// 跳转到指定时间点
ctrlKey: true,
metaKey: true,
shiftKey: false,
altKey: false,
type: 'click',
},
},
},
};
function isNum(str) {
if (str != null && str != "") {
return !isNaN(str);
}
return false;
}
function isEvent(event, key) {
return (event.type == key.type
&& (event.ctrlKey == key.ctrlKey || event.metaKey == key.metaKey)
&& event.shiftKey == key.shiftKey
&& event.altKey == key.altKey
)
}
window.onload = setTimeout(
() => {
if (config.timestamp.enable) {
let body = document.querySelector('body');
// 块属性编辑窗口确认按钮保存自定义样式
body.addEventListener('click', (e) => {
try {
// console.log(e);
if (isEvent(e, config.hotkeys.timestamp.jump)) {
var time = e.target.getAttribute(config.timestamp.attribute);
if (isNum(time)) {
switch (e.target.getAttribute('data-type')) {
case 'NodeAudio':
case 'NodeVideo':
setTimeout(() => {
e.target.firstElementChild.firstElementChild.currentTime = time;
}, 0);
break;
default:
break;
}
}
}
} catch (err) {
console.error(err);
}
}, true);
}
}, 0)
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于