我有一个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字体缩放以应用补偿的问题?
答案 0 :(得分:0)
LGSon,该链接很有用,因为浏览器缩放问题类似于Windows桌面缩放浏览器问题。
由于不同浏览器对缩放的反应不同,我不得不添加特定于浏览器的代码,主要是针对IE和Edge调整window.devicePixelRatio拖动对象的左侧和顶部属性。