使用滚动条后的画布像素坐标偏移量
Canvas pixel coordinate offset after scroll bar is used
我在页面顶部使用画布。我在鼠标移动事件中从画布中写出像素坐标。通常,最底部的y值等于画布高度,即700px。但是当滚动条被用来在页面上向下滚动一点后,画布的底部y坐标将相应地改变为400px。
document.getElementById("mapcanvas").addEventListener("mousemove", getPosition, false);
function getPosition(event)
{
var x = event.x;
var y = event.y;
var canvas = document.getElementById("mapcanvas");
x -= canvas.offsetLeft;
y -= canvas.offsetTop;
document.getElementById("canvascoords").innerHTML = "Canvascoords: "+ "x=" + x + ", y=" + y;
}
…mapcanvas是存放画布的div。
有没有想法使y坐标独立于滚动条的使用,使下y坐标始终是700px?
正如你所发现的,canvas.offsetLeft
&canvas.offsetTop
不考虑滚动
要考虑滚动,您可以使用canvas.getBoundingClientRect
var BB=canvas.getBoundingClientRect();
var x=event.clientX-BB.left;
var y=event.clientY-BB.top;
顺便说一句,你可能只想在getPosition()函数外获取一次对canvas元素的引用,而不是在getPosition()函数内反复获取。
var canvas = document.getElementById("mapcanvas");
function getPosition(event){
...
相关文章:
- 点击(右键点击)使用传单地图库获取图像覆盖的像素坐标
- 谷歌地图:获取点击或标记(x,y)像素坐标内的标记点击侦听器
- 从FF和谷歌浏览器的像素坐标中选择
- 如何在传单中投影像素坐标
- 如何将像素坐标转换为等轴测网格坐标
- 开放层 - 像素坐标不正确
- 将纬度/纬度转换为像素坐标
- Pixi.js / WebGL方法,用于将数据模型坐标转换为画布像素坐标
- 获取基于百分比或基于像素的x&y坐标来自latlng
- 找出图像中文本块的像素坐标
- 从坐标中获取像素
- 将lat/lng坐标转换为给定地图上的像素(使用JavaScript)
- 使用滚动条后的画布像素坐标偏移量
- 计算坐标区域的黑色像素
- 将纬度/长度转换为像素X&Y坐标
- 使用Javascript查找网页上特定坐标的像素颜色
- 图像像素X、Y坐标为经纬度
- Google Maps API v3 -- 如何将 .getBounds() 转换为像素坐标
- HTML 5画布坐标和浏览器像素的相关性
- 获取矩形元素的屏幕像素坐标