// 禁用浏览器ctrl +- 缩放
const keyCodeMap = {
// 91: true, // command
61: true,
107: true, // 数字键盘 +
109: true, // 数字键盘 -
173: true, // 火狐 - 号
187: true, // +
189: true // -
}
// 覆盖ctrl||command + ‘+’/‘-’
document.onkeydown = function(event) {
const e = event || window.event
const ctrlKey = e.ctrlKey || e.metaKey
if (ctrlKey && keyCodeMap[e.keyCode]) {
e.preventDefault()
} else if (e.detail) { // Firefox
event.returnValue = false
}
}
// 覆盖鼠标滑动
// 禁用鼠标滚轮缩放
document.body.addEventListener('wheel', (e) => {
if (e.ctrlKey) {
if (e.deltaY < 0) {
e.preventDefault()
return false
}
if (e.deltaY > 0) {
e.preventDefault()
return false
}
}
}, { passive: false })
// 禁用 浏览器工具栏 点击+- 缩放页面
// 原理:放大时,devicePixelRatio值会增大,同时等比例缩小zoom值(注意:样式单位不能使用vw、vh适配)
const oldDpr = window.devicePixelRatio window.addEventListener('resize', (e) => {
document.querySelector('body').style.zoom = oldDpr * 1 / window.devicePixelRatio
})