|
19 | 19 | </template> |
20 | 20 |
|
21 | 21 | <script setup> |
22 | | - el.addEventListener('click', ()=>{ |
23 | | - const overlay = document.createElement('div'); |
24 | | - overlay.className = 'modal-overlay'; |
25 | | -
|
26 | | - const modal = document.createElement('div'); |
27 | | - modal.className = 'modal-card'; |
28 | | - modal.innerHTML = ` |
29 | | - <img src="${el.querySelector('img').src}" alt="二维码"> |
30 | | - <div class="modal-title">SecRandom团队再次感谢您的支持</div> |
31 | | - <div class="modal-subtitle">点击周围空白关闭</div> |
32 | | - `; |
33 | | -
|
34 | | - overlay.appendChild(modal); |
35 | | - document.body.appendChild(overlay); |
36 | | -
|
37 | | - // 点击空白关闭 |
38 | | - overlay.addEventListener('click', (e)=>{ |
39 | | - if(e.target===overlay){ |
40 | | - document.body.removeChild(overlay); |
41 | | - } |
42 | | - }); |
43 | | - }); |
44 | | -}); |
| 22 | +import { onMounted } from 'vue' |
| 23 | +onMounted(() => { |
| 24 | + // 给所有二维码容器绑定点击事件 |
| 25 | + document.querySelectorAll('.qrcode-wrapper').forEach(el => { |
| 26 | + el.addEventListener('click', () => { |
| 27 | + const overlay = document.createElement('div') |
| 28 | + overlay.className = 'modal-overlay' |
| 29 | +
|
| 30 | + const modal = document.createElement('div') |
| 31 | + modal.className = 'modal-card' |
| 32 | + modal.innerHTML = ` |
| 33 | + <img src="${el.querySelector('img').src}" alt="二维码"> |
| 34 | + <div class="modal-title">SecRandom团队再次感谢您的支持</div> |
| 35 | + <div class="modal-subtitle">点击周围空白关闭</div> |
| 36 | + ` |
| 37 | +
|
| 38 | + overlay.appendChild(modal) |
| 39 | + document.body.appendChild(overlay) |
| 40 | +
|
| 41 | + // 点击空白关闭 |
| 42 | + overlay.addEventListener('click', (e) => { |
| 43 | + if (e.target === overlay) { |
| 44 | + document.body.removeChild(overlay) |
| 45 | + } |
| 46 | + }) |
| 47 | + }) |
| 48 | + }) |
| 49 | +}) |
45 | 50 | </script> |
46 | | - |
47 | 51 | <style scoped> |
48 | 52 | .donate-container { |
49 | 53 | display: flex; |
|
0 commit comments