浏览器缩放时绝对元素的位置错误!= 1?

时间:2017-05-24 15:18:44

标签: javascript html css

我有一个全屏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,其中只包含绝对定位的元素。

0 个答案:

没有答案