小 |
小 |
||
第21行: | 第21行: | ||
var audios = document.getElementsByClassName('audio-player'); | var audios = document.getElementsByClassName('audio-player'); | ||
var notValidAudio = /wpDestFile/; | var notValidAudio = /wpDestFile/; | ||
− | for(var i=0;i<audios.length;i++) { | + | var currentPlaying = null; |
+ | |||
+ | for(var i = 0; i < audios.length; i++) { | ||
var audio = audios[i]; | var audio = audios[i]; | ||
var linkEl = audio.firstElementChild; | var linkEl = audio.firstElementChild; | ||
第42行: | 第44行: | ||
a.src = link; | a.src = link; | ||
a.preload = 'none'; | a.preload = 'none'; | ||
+ | |||
+ | a.onplay = function () { | ||
+ | currentPlaying = a; | ||
+ | this.classList.add('audio-player-playing'); | ||
+ | this.classList.remove('audio-player-paused'); | ||
+ | }; | ||
+ | a.onpause = function () { | ||
+ | this.classList.add('audio-player-paused'); | ||
+ | this.classList.remove('audio-player-playing'); | ||
+ | }; | ||
a.onended = function () { | a.onended = function () { | ||
+ | currentPlaying = null; | ||
this.parentNode.classList.remove('audio-player-playing'); | this.parentNode.classList.remove('audio-player-playing'); | ||
}; | }; | ||
第52行: | 第65行: | ||
button.onclick = function () { | button.onclick = function () { | ||
var a = this.firstElementChild; | var a = this.firstElementChild; | ||
+ | |||
+ | if (currentPlaying != a) { | ||
+ | currentPlaying.currentTime = currentPlaying.duration; | ||
+ | } | ||
if (a.paused) { | if (a.paused) { | ||
a.play(); | a.play(); | ||
− | |||
− | |||
} | } | ||
else { | else { | ||
a.pause(); | a.pause(); | ||
− | |||
− | |||
}; | }; | ||
}; | }; |
2021年4月6日 (二) 01:07的版本
/* 这里的任何JavaScript将为所有用户在每次页面载入时加载。 */ /* 补齐丢失的MediaWiki快捷键 */ $('#ca-edit').attr('accesskey','e'); $('#ca-edit').attr('title','编辑本页[alt-shift-e]'); $('#ca-talk').attr('accesskey','t'); $('#ca-talk').attr('title','关于内容页面的讨论[alt-shift-t]'); /* 右上角添加强制刷新按钮 */ $('.wds-button-group #p-more .wds-list:not(.ns--1 .wds-list)').append('<li id="m-page-purge"><a href="?action=purge">强制刷新</a></li>'); /* 处理直接下载的链接问题 */ $('.download-link > a').each(function (_, n) { n.setAttribute('target', '_blank'); n.setAttribute('download', n.getAttribute('title')); n.setAttribute('title', '下载'); }); /* 生成音频播放按钮 */ (function (){ var audios = document.getElementsByClassName('audio-player'); var notValidAudio = /wpDestFile/; var currentPlaying = null; for(var i = 0; i < audios.length; i++) { var audio = audios[i]; var linkEl = audio.firstElementChild; if (!linkEl) { continue; } var link = linkEl.href; if (notValidAudio.test(link)) { continue; } audio.innerHTML = ''; audio.classList.add('has-audio-element'); var a = document.createElement('audio'); a.src = link; a.preload = 'none'; a.onplay = function () { currentPlaying = a; this.classList.add('audio-player-playing'); this.classList.remove('audio-player-paused'); }; a.onpause = function () { this.classList.add('audio-player-paused'); this.classList.remove('audio-player-playing'); }; a.onended = function () { currentPlaying = null; this.parentNode.classList.remove('audio-player-playing'); }; var button = document.createElement('button'); button.classList.add('audio-player-button'); button.append(a); button.onclick = function () { var a = this.firstElementChild; if (currentPlaying != a) { currentPlaying.currentTime = currentPlaying.duration; } if (a.paused) { a.play(); } else { a.pause(); }; }; audio.append(button); }; })(); /* 重新布局评论区 */ /* (function () { $('#allcomments .c-item').each(function(_, c) { var $commentItem = $(c); var $score = $commentItem.find('.c-score'); $commentItem.prepend($score); $commentItem.addClass('c-layout'); }); })(); */ /* 使用占位图来代替受损图像链接(基本是图还没上传的) */ $('a.new').each(function(_, n) { var href = n.getAttribute('href'); var isImage = /\.(png|jpe?g|svg|gif)$/.test(href); if (isImage) { // 将这个链接加上一个 class n.classList.add('unresolved-image'); // 其文本内容则是设置的宽高 n.style.width = n.textContent; n.style.height = n.textContent; } }); /* 移除渲染延迟 Cloak */ $('.template-render-cloak').each(function(_, n) { n.classList.remove('template-render-cloak'); });