【问题标题】:Handling Microsoft Windows display scaling not 100% in Javascript在 Javascript 中处理 Microsoft Windows 显示缩放不是 100%
【发布时间】: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


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2020-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-18
    • 1970-01-01
    • 1970-01-01
    • 2023-02-18
    • 2018-02-27
    相关资源
    最近更新 更多