调整窗口大小时如何计算图像的X Y坐标
How to calculate X Y coordinates of image when window resize?
我正在编写一个代码,用于将小图像放在HTML画布上。同时在该图像上生成点击事件。图像有高度(50),宽度(50),X-Y坐标(250,150),画布也有高度(480),宽度(720)。
因此,当我单击图像时,会收到警报("您单击了图像")。但是当我将窗口大小调整为小时,也会在错误的地方生成警报,然后在错误的地方生成警报消息。
我只想在单击图像时生成警报消息。如果我调整窗口大小(小),那么也应该只点击图像生成警报消息。
检查小提琴-
[在此输入链接说明][1]
[1]: https://jsfiddle.net/u84p9qn1/
当画布元素和画布位图具有不同的大小时,需要使用因子来缩放鼠标位置以适合位图中的相对位置。这可以通过将位图大小除以元素大小来完成。
改良小提琴
$("#myCanvas").click(function (event) {
// get size of element and divide bitmap size on it
var rect = this.getBoundingClientRect();
var scaleX = this.width / rect.width;
var scaleY = this.height / rect.height;
// scale position: (first adjust, then scale)
var mouseX = Math.round((event.clientX - rect.left) * scaleX);
var mouseY = Math.round((event.clientY - rect.top ) * scaleY);
var x = 250;
var y = 150;
var w = 50;
var h = 50;
if (mouseX >= x && mouseX <= x + w && mouseY >= y && mouseY <= y + h) {
alert("You clicked on image");
}
}
相关文章:
- 点击(右键点击)使用传单地图库获取图像覆盖的像素坐标
- 使用D3.js和GeoJson在地图上的某些坐标上设置一个小图像
- 以编程方式将fabric-js-canvas的图像替换为hq图像,并重新计算其他对象的坐标和大小
- 获取框内图像的坐标
- 从两个标记中查找静态地图图像坐标
- 获取画布中图像内的鼠标坐标
- 如何获取画布中图像元素的坐标
- 单击图像,获取坐标并将其保存在数据库JavaScript和Rails中
- 如何在上传之前获取图像的裁剪坐标
- 通过指向 X、Y 坐标来移动图像
- 图像可拖动到特定的 x,y 坐标
- 不同浏览器的图像映射坐标
- 如何在使用文本对齐时调整图像大小并保持图像映射坐标:居中
- 将调整大小的图像坐标映射回原始图像坐标
- 传单自定义图像坐标
- 如何使用fabric js中的image.centerObject()将对象居中后获得图像坐标
- 使用图像坐标裁剪图像
- 获取鼠标移动的图像坐标
- 我如何获得图像坐标鼠标悬停与three.js
- 用css中的变量控制精灵图像坐标