在Javascript中处理Microsoft Windows显示缩放不是100%

时间:2018-03-17 04:59:10

标签: javascript windows dom-events

我有一个JavaScript应用程序,它使用拖动功能根据鼠标在屏幕上的位置移动HTML小部件。我使用screenX和screenY来确定鼠标位置,因为鼠标将移动到其他小部件(使用OBJECT标签嵌入HTML),这将吞下鼠标事件。

一切正常,除非具有高分辨率屏幕的最终用户将其Windows字体缩放分辨率设置为不同于100%(例如,在现代笔记本电脑上常见),然后鼠标跟踪最终会受到屏幕分辨率因素的影响(在所有浏览器上都一致),拖动功能失败。我可以通过将相同的比例因子应用于小部件Left和Top属性的新X / Y坐标来处理这个问题。

以下是代码(其中winFontScale是显示字体比例的Windows设置):

function mouseMove(event) {
     widgetObj.style.setProperty("left", event.screenX / winFontScale + "px");
     widgetObj.style.setProperty("top", event.screenY / winFontScale + "px");
}

但是我不认为JavaScript可以检测Windows字体缩放设置吗?其他人如何解决这个无法检测Windows字体缩放以应用补偿的问题?

1 个答案:

答案 0 :(得分:0)

LGSon,该链接很有用,因为浏览器缩放问题类似于Windows桌面缩放浏览器问题。

由于不同浏览器对缩放的反应不同,我不得不添加特定于浏览器的代码,主要是针对IE和Edge调整window.devicePixelRatio拖动对象的左侧和顶部属性。