Widget:GF立绘切换:修订间差异
来自OGAS数据中枢
更多操作
无编辑摘要 |
无编辑摘要 |
||
| 第7行: | 第7行: | ||
var container = box.querySelector('.gf-image-container'); | var container = box.querySelector('.gf-image-container'); | ||
var | var btns = box.querySelectorAll('.gf-switch-btn'); | ||
var overlay = box.querySelector('.gf-switcher-overlay'); | |||
var toggle = box.querySelector('.gf-switcher-toggle'); | |||
// 展开/收起逻辑 | |||
if (toggle && overlay) { | |||
toggle.addEventListener('click', function() { | |||
overlay.classList.toggle('collapsed'); | |||
}); | |||
} | |||
var src = | if (!container || btns.length < 1) return; | ||
btns.forEach(function (btn) { | |||
btn.addEventListener('click', function () { | |||
if (btn.classList.contains('active')) return; | |||
var src = btn.dataset.src; | |||
if (!src) return; | if (!src) return; | ||
var oldImg = container.querySelector('img'); | var oldImg = container.querySelector('img'); | ||
if (oldImg) | if (oldImg) oldImg.style.opacity = '0'; | ||
setTimeout(function () { | setTimeout(function () { | ||
container.innerHTML = '<img src="' + src + '" style="max-width:100%;max-height: | container.innerHTML = '<img src="' + src + '" style="max-width:100%;max-height:500px;object-fit:contain;opacity:0;transition:opacity 0.3s;height:auto;width:auto;">'; | ||
var newImg = container.querySelector('img'); | var newImg = container.querySelector('img'); | ||
if (newImg) { | if (newImg) { | ||
| 第31行: | 第39行: | ||
}, 150); | }, 150); | ||
btns.forEach(function (b) { b.classList.remove('active'); }); | |||
btn.classList.add('active'); | |||
}); | }); | ||
}); | }); | ||
2026年5月15日 (五) 22:04的版本
<script> (function () {
function initSwitcher() {
document.querySelectorAll('.gf-infobox-new').forEach(function (box) {
if (box.dataset.ready) return;
box.dataset.ready = '1';
var container = box.querySelector('.gf-image-container');
var btns = box.querySelectorAll('.gf-switch-btn');
var overlay = box.querySelector('.gf-switcher-overlay');
var toggle = box.querySelector('.gf-switcher-toggle');
// 展开/收起逻辑
if (toggle && overlay) {
toggle.addEventListener('click', function() {
overlay.classList.toggle('collapsed');
});
}
if (!container || btns.length < 1) return;
btns.forEach(function (btn) {
btn.addEventListener('click', function () {
if (btn.classList.contains('active')) return;
var src = btn.dataset.src;
if (!src) return;
var oldImg = container.querySelector('img');
if (oldImg) oldImg.style.opacity = '0';
setTimeout(function () {
container.innerHTML = '<img src="' + src + '" style="max-width:100%;max-height:500px;object-fit:contain;opacity:0;transition:opacity 0.3s;height:auto;width:auto;">';
var newImg = container.querySelector('img');
if (newImg) {
newImg.onload = function () { newImg.style.opacity = '1'; };
if (newImg.complete) newImg.style.opacity = '1';
}
}, 150);
btns.forEach(function (b) { b.classList.remove('active'); });
btn.classList.add('active');
});
});
});
}
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', initSwitcher);
} else {
initSwitcher();
}
if (window.mw) {
mw.hook('wikipage.content').add(initSwitcher);
}
})(); </script>