我有一个全屏div,其中包含一个地图,其中包含绝对定位的元素(城市,军队等)。
使用默认的浏览器缩放功能一切正常,但如果我更改浏览器缩放级别,则位置会以看似随机的方式变化。有时它们是左/右/右/上的像素,没有我能想出的规则。
绝对元素位置是根据它们在地图中的坐标计算的,例如,如果元素的坐标为x: 5, y: 8
,而一个地图象限的维度为width=20px, height=20px
,则其位置计算如下:
var pos={
"x": 5*20,
"y": 8*20
};
我最好的猜测是,当浏览器缩放发生变化时,浏览器会将这些像素值四舍五入。例如,如果browser zoom==0.911
,则实际象限大小为18.22 x 18.22。例如,如果浏览器将此值四舍五入为18.2,则pos
将关闭几个像素。
我的假设是否正确,是否有一个解决方案,无论浏览器缩放级别如何都能始终如一地工作?
编辑:一个简单的解决方案(有效)是将地图构造为具有固定td
宽度/高度的表格,但这会产生大量无用的HTML节点,并减慢页面的加载时间,这对客户来说是不可接受的。我需要将地图保持为一个简单的div,其中只包含绝对定位的元素。