SocialNetworks_duan/src/App.vue

64 lines
1.7 KiB
Vue
Raw Normal View History

2025-07-17 10:28:56 +08:00
<template>
<div class="app-container">
<router-view />
2025-07-17 10:28:56 +08:00
</div>
</template>
<script setup>
import { onMounted, onUnmounted } from "vue"
2025-08-08 17:51:36 +08:00
const disableZoom = () => {
// 强制重置浏览器缩放为 100%
const resetZoom = () => {
document.body.style.zoom = "100%"
if (window.devicePixelRatio !== 1) {
const viewportMeta = document.querySelector('meta[name="viewport"]')
if (viewportMeta) {
viewportMeta.content =
"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"
}
}
}
// 禁用快捷键Ctrl/Cmd + +/-/0 和 滚轮)
2025-08-08 17:51:36 +08:00
const keysToBlock = new Set(["+", "-", "=", "0"])
const codesToBlock = new Set(["Equal", "Minus", "NumpadAdd", "NumpadSubtract", "Digit0"])
const handleKeyDown = (e) => {
if ((e.ctrlKey || e.metaKey) && (keysToBlock.has(e.key) || codesToBlock.has(e.code))) {
e.preventDefault()
}
}
const handleWheel = (e) => {
if (e.ctrlKey) {
2025-08-08 17:51:36 +08:00
e.preventDefault()
}
}
// 初始化
resetZoom()
document.addEventListener("keydown", handleKeyDown)
document.addEventListener("wheel", handleWheel, { passive: false })
// 可选,用于组件卸载时移除监听
return () => {
document.removeEventListener("keydown", handleKeyDown)
document.removeEventListener("wheel", handleWheel)
}
2025-08-08 17:51:36 +08:00
}
onMounted(() => {
2025-08-13 10:41:33 +08:00
// const cleanup = disableZoom()
// onUnmounted(() => cleanup())
2025-08-08 17:51:36 +08:00
})
2025-07-17 10:28:56 +08:00
</script>
2025-08-08 17:51:36 +08:00
<style scoped lang="less">
2025-07-17 10:28:56 +08:00
.app-container {
max-width: 100vw;
min-height: 100vh;
background: url("@/assets/images/bci.png");
background-size: cover;
2025-07-17 10:28:56 +08:00
background-repeat: no-repeat;
background-position: center;
background-color: #02131f;
}
</style>