Skip to content

Commit 2ffac07

Browse files
authored
不当人了——页面加载时销毁medium-zoom+放大时统一图片显示尺寸
Signed-off-by: 本新同学 <yuanbenxin@outlook.com>
1 parent fd7cdeb commit 2ffac07

1 file changed

Lines changed: 20 additions & 5 deletions

File tree

docs/.vitepress/theme/components/Donate.vue

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,24 +22,41 @@
2222
import { onMounted } from 'vue'
2323
2424
onMounted(() => {
25-
// 给所有二维码容器绑定点击事件
25+
// ===== 1. 销毁 medium-zoom 防止冲突 =====
26+
if (window.__mediumZoom__) {
27+
try {
28+
window.__mediumZoom__.detach()
29+
console.log('medium-zoom 已销毁')
30+
} catch (err) {
31+
console.warn('medium-zoom 销毁失败', err)
32+
}
33+
} else {
34+
// 没挂到 window 上,直接克隆替换所有 img,移除绑定事件
35+
document.querySelectorAll('img').forEach(img => {
36+
img.replaceWith(img.cloneNode(true))
37+
})
38+
console.log('medium-zoom 事件已清除')
39+
}
40+
41+
// ===== 2. 自定义放大逻辑 =====
2642
document.querySelectorAll('.qrcode-wrapper').forEach(el => {
2743
el.addEventListener('click', () => {
2844
const overlay = document.createElement('div')
2945
overlay.className = 'modal-overlay'
3046
3147
const modal = document.createElement('div')
3248
modal.className = 'modal-card'
49+
50+
// 强制放大时尺寸一致
3351
modal.innerHTML = `
34-
<img src="${el.querySelector('img').src}" alt="二维码">
52+
<img src="${el.querySelector('img').src}" alt="二维码" style="width: 320px; height: auto; max-width: 80vw; max-height: 70vh; object-fit: contain;">
3553
<div class="modal-title">SecRandom团队再次感谢您的支持</div>
3654
<div class="modal-subtitle">点击周围空白关闭</div>
3755
`
3856
3957
overlay.appendChild(modal)
4058
document.body.appendChild(overlay)
4159
42-
// 点击空白关闭
4360
overlay.addEventListener('click', (e) => {
4461
if (e.target === overlay) {
4562
document.body.removeChild(overlay)
@@ -155,8 +172,6 @@ p {
155172
}
156173
157174
.modal-card img {
158-
max-width: 80vw;
159-
max-height: 70vh;
160175
display: block;
161176
border-radius: 12px;
162177
}

0 commit comments

Comments
 (0)