【发布时间】:2018-03-18 05:43:57
【问题描述】:
我有一个 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 字体缩放以应用补偿的问题?
【问题讨论】:
标签: javascript windows dom-events