大屏页面使用transform属性scale进行缩放,高德地图点击事件失效,地图展示模糊
创始人
2025-05-29 00:10:08
0

这里写自定义目录标题

  • 大屏页面使用transform属性scale进行缩放,高德地图点击事件失效,地图展示模糊
    • 1、大屏缩放自适应时使用tansform scale 缩放
        • 1.1、window.resize 监听浏览器变化,动态获取要缩放的比例(宽高),新建文件 resetwh.js 然后引入即可
    • 2、高德地图在缩放的页面中,点击事件失效
          • 2.1 方法一:通过iframe 嵌套地图页面 或者组件(这里不做赘述)
          • 2.2 方式二:通过缩放将地图容器缩放回原来的尺寸

大屏页面使用transform属性scale进行缩放,高德地图点击事件失效,地图展示模糊

1、大屏缩放自适应时使用tansform scale 缩放

1.1、window.resize 监听浏览器变化,动态获取要缩放的比例(宽高),新建文件 resetwh.js 然后引入即可

window.onresize = function () {fnResize();
}
// 自执行一次,初始化
fnResize();
setTimeout(() => {fnResize();
}, 200)function fnResize() {let screenWidth = document.body.clientWidth || document.documentElement.clientWidth;let screenHeight = document.body.clientHeight || document.documentElement.clientHeight;let defWidth = 1920;let defHeight = 1080;let xScale = screenWidth / defWidth;let yScale = screenHeight / defHeight;var style1 = document.createElement('style');style1.innerHTML = '#page{transform: scale(' + xScale + ',' + yScale + ')}';document.head.appendChild(style1);// rem 的根字体大小,不用可删除document.documentElement.style.fontSize = '100px';
}

2、高德地图在缩放的页面中,点击事件失效

2.1 方法一:通过iframe 嵌套地图页面 或者组件(这里不做赘述)
2.2 方式二:通过缩放将地图容器缩放回原来的尺寸

思路:既然是缩放导致位置发生错位,导致点击的点不在地图的真实点位上,那么我们可以将地图的容器,再通过计算给缩放回来不就可以了吗?
代码:首先监听浏览器窗口变化,注意这里不能在使用 window.onresize了,不然会覆盖1中的监听事件

window.addEventListener('resize',this.resetMapSize)

能监听到,那么我们就获取容器,根据页面的缩放比,把地图的容器还原回去,也就是 宽高比时原来的 1:1

// fnResize 方法和1中一样,只是获取当前缩放的比例 xScale, yScaleresetMapSize() {let scaleWH = fnResize();let mapContent = document.getElementById("monitor-map");mapContent.style.transform = `scale(${1 / scaleWH.xScale},${1 / scaleWH.yScale})`}
// 用完后记得销毁监听事件 比如 vue 中
destroyed () {window.removeEventListener('resize',this.resetMapSize)}

个人推荐方法二,方法一iframe 要是有数据流转、交货等,通信相比而言比较麻烦。

相关内容

热门资讯

清仓英伟达、裁员、抵押贷款……... 财联社12月21日讯(编辑 刘蕊)裁员、抛售股票、抵押贷款……软银CEO孙正义近日四处奔走,一切都只...
“扛把子”!这类产品12月扩容... 12月15日~12月19日, A股主要指数震荡回落,沪深300指数小跌0.28%,最近火热的中证A5...
5000万以上为重大资产损失!... 2025.12.20本文字数:1484,阅读时长大约3分钟作者 |第一财经 祝嫣然为建立长效激励约束...
中国首块L3级自动驾驶专用正式... 红星资本局12月21日消息,12月20日,长安汽车(000625.SZ)宣布,首块L3级自动驾驶专用...
俞浩,带来了一种不同于财务并购... 随着越来越多的交易浮出水面,购买上市公司,似乎已经成为了创业公司们秘而不宣的一种共识。不久前,投中网...
21载热血传承!2025肯德基... 12月19日至20日,杭州市西湖区文体中心体育馆内,篮球撞击地板的清脆回响与少年们的热血呐喊交织共振...
中邮基金换帅!权益规模下降,中... 张涛接任后,公司能否在巩固固收优势的同时补齐权益短板,将成为其任期内的关键挑战。文/每日财报 楚风
从一罐无糖,到“全城疯迷”:百... 前言《疯狂动物城2》爆了!作为今冬最受瞩目的大IP,第二部一经上映再次席卷社交网络。但疯狂的,不只是...
突然拉升!加密货币超6万人爆仓... 北京时间20日晚间,仍在交易的加密货币集体拉升,纷纷飘红。CoinGlass数据显示,近24小时内,...