javascript - HTML5 获取可滚动 div 内 Canvas 的内部坐标

标签 javascript html canvas

我有一个 Canvas ,在其中绘制 4000x4000 像素的图像(它代表 map )。 Canvas 嵌入在可滚动的 div 中,其大小小于 Canvas 大小。 我需要获取鼠标指针相对于 Canvas 中绘制的 4000x4000 图像所经过的坐标,这意味着它还需要考虑可能的滚动。

<div class="" style="overflow: scroll; width:450px; height:200px;">
    <canvas id="map" onmousemove="getMousePos(event)">
    </canvas>
</div>

最佳答案

您可以使用 offsetX 获得相对于 Canvas 的准确 xy 鼠标坐标。 offsetY MouseEvent 的属性。

function getMousePos(event) {
   var x = event.offsetX;
   var y = event.offsetY;
}

ᴡᴏʀᴋɪɴɢ ᴇxᴀᴍᴘʟᴇ

function getMousePos(event) {
   var x = event.offsetX;
   var y = event.offsetY;
   console.clear();
   console.log(x, y);
}
<div class="cont" style="overflow: scroll; width:450px; height:400px;">
    <canvas id="map" width="4000" height="4000" onmousemove="getMousePos(event)" style="background-color: red;"/>
</div>

关于javascript - HTML5 获取可滚动 div 内 Canvas 的内部坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44863691/

相关文章:

JavaScript - 使用当前时区格式化日期

html - 如何删除和重定向Nginx上的静态.html结尾?

html - CSS 和 HTML 菜单

canvas - Three.js canvas.toDataURL 有时为空

android - 如何在 Canvas 上绘制大量矩形并且性能良好?

javascript - EaselJS 具有 200 多个矢量形状 : performance and aesthetics

javascript - ng-style 不适用于 stroke-dasharray 和 stroke-dashoffset CSS 元素

javascript - 将身份验证方案与 Azure AD 相结合

javascript - 如何使 javascript 对象被视为虚假对象?

php - 从客户端 javascript 页面接收数组