MediaWiki:Vector.js:修订间差异

添加342字节 、​ 2021年1月24日 (星期日)
ES2015 == ES5 // false ; mw.ES2015 === mwES5 //
(左侧栏折叠)
 
(ES2015 == ES5 // false ; mw.ES2015 === mwES5 //)
// 主过程
function main() {
letvar panel = document.getElementById('mw-panel');
if (!panel /*|| !(panel instanceof HTMLElement)*/) {
return;
}
letvar portals = HTMLElementFliter(Array.from(panel.getElementsByClassName('portal')));
// let screenHeight = document.documentElement.clientHeight, panelHeight = panel.offsetHeight
/**左侧栏是不是比屏幕高度还要高了 */
letvar overHeight = document.documentElement.clientHeight < panel.offsetHeight + 36;
/**是的话默认闭合,不是的话默认打开 */
letvar defaultClass = overHeight ? 'salt-close' : 'salt-open';
forvar (let_loop_1 portal= offunction portals(portal) {
letvar h3 = portal.querySelector('h1,h2,h3,h4,h5,h6');
letvar body = portal.querySelector('.body');
if (!h3 || !(h3 instanceof HTMLElement)
|| !body || !(body instanceof HTMLElement))
return "continue"; // 没有的话就算了
if (h3.textContent == '导航')
return "continue"; // 这个'导航'的h3是没不显示的
letvar openHeight = body.offsetHeight; //, closeHeight = h3.offsetTop + h3.offsetHeight
portal.style.setProperty('--salt-open-height', openHeight + 'px');
// portal.style.setProperty('--salt-close-height', closeHeight + 'px')
portal.classList.add(defaultClass);
h3.addEventListener('click', function () => {
portal.toggleClass('salt-open');
portal.toggleClass('salt-close');
});
};
for (var _i = 0, portals_1 = portals; _i < portals_1.length; _i++) {
var portal = portals_1[_i];
_loop_1(portal);
}
}
function HTMLElementFliter(el) {
letvar hel = [];
for (letvar e_i of= 0, el_1 = el; _i < el_1.length; _i++) {
var e = el_1[_i];
if (e instanceof HTMLElement)
hel.push(e);
}
return hel;
}
HTMLElement.prototype.toggleClass = function (classes) {
var cls = String(classes).replace(/[\s\,\;]+/gm, ',').split(',');
for (var c_i of= 0, cls_1 = cls; _i < cls_1.length; _i++) {
var c = cls_1[_i];
if (this.classList.contains(c)) {
this.classList.remove(c);
}
if (document.readyState == 'loading') {
document.addEventListener('DOMContentLoaded', function () => { setTimeout(main, 500); });
}
else {