代码很简单就这么一点,160X160的一个canvas画布,按理鼠标在画布里的时候,下面显示坐标的x,y都在0~160范围内。单独用浏览器打开这段程序,很正常。可是放在博客侧边栏公告里,x倒正常,y却都负了。。。。。。现在已经确定是y1的问题,现在发现是这样的,我只要把网页上下滚动拉到顶,那么就可以得到正确的值。也就是y1得到的不是网页内的坐标,而是网页可视范围上的坐标。请问y1怎么改,如何才可以得到正确的坐标?
1 回答

慕娘9325324
TA贡献1783条经验 获得超4个赞
var n = document.getElementById("myCanvas");
var c = n.getContext("2d");
var ev2 = event || window.event;
var x1 = ev2.PageX||ev2.clientX;
var y1 = ev2.PageY||ev2.clientY;
x1 += document.documentElement.scrollLeft || document.body.scrollLeft;
y1 += document.documentElement.scrollTop || document.body.scrollTop;
var x2 = n.offsetLeft;
var y2 = n.offsetTop;
//var y2 = $(n).offset().top;
var x = x1 - x2;
var y = y1 - y2;
添加回答
举报
0/150
提交
取消