// 禁用瀏覽器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
})