【发布时间】:2016-10-13 15:53:22
【问题描述】:
** 在标记为重复之前阅读! **
在画布上获取鼠标位置几乎可以正常工作。
我的窗口大小是800 x 600
我的画布尺寸是400 x 300:
canvas.width = 400;
canvas.height = 300;
我的画布css 大小是100% x 100%:
canvas {width: 100vw; height: 100vh;}
问题是:如果我的鼠标在画布中间,我会得到这个鼠标位置:400, 300。如果我的窗口大小是1600 x 1200,我会得到800, 600。
我想获得鼠标的 canvas 位置。我的意思是,无论窗口大小如何,我都希望得到200, 150。
我该怎么做? 感谢您的帮助。
【问题讨论】:
-
您的画布尺寸不是 400x300,因为您将其定义为 100vw/100vh。所以你得到的正是你所要求的。画布上的位置以画布显示的大小。如果您想将其转换为您的 400x300 硬编码值,您需要自己计算。
actual X = (displayed X / hardcoded X) * Xpos -
canvas.width和canvas.height分别是 400 和 300,但css像我想要的那样将其拉伸到 100vw/10vh。我可以自己计算,但也许有更简单快捷的内置方法?
标签: javascript html html5-canvas mouse