ontouchend-ios返回错误的坐标
ontouchend ios returns wrong coordinates
我一直在读一本非常有用的书《核心HTML5画布》,其中包括一个在同一函数中包含鼠标点击和触摸的示例。我的版本(与本书非常相似)如下:
function windowToCanvas(x, y) {
var bbox = canvas.getBoundingClientRect();
return { x: x - bbox.left * (canvas.width /bbox.width), y: y - bbox.top * (canvas.height / bbox.height)};
};
canvas.ontouchstart = function(e) {
e.preventDefault(e);
MTStart(windowToCanvas(e.pageX, e.pageY));
};
canvas.ontouchmove = function(e) {
e.preventDefault(e);
MTMove(windowToCanvas(e.pageX, e.pageY));
};
canvas.ontouchend = function(e) {
e.preventDefault(e);
MTEnd(windowToCanvas(e.pageX, e.pageY));
};
canvas.onmousedown = function(e) {
e.preventDefault(e);
MTStart(windowToCanvas(e.pageX, e.pageY));
};
canvas.onmousemove = function(e) {
e.preventDefault(e);
MTMove(windowToCanvas(e.pageX, e.pageY));
};
canvas.onmouseup = function(e) {
e.preventDefault(e);
MTEnd(windowToCanvas(e.pageX, e.pageY));
};
function MTStart(location) {
console.log("Mouse down");
document.getElementById('message').innerHTML = 'MT Start x: ' + location.x + ', y: ' + location.y;
};
function MTMove(location) {
};
function MTEnd(location) {
console.log("Mouse up");
document.getElementById('message').innerHTML = 'MT End x: ' + location.x + ', y: ' + location.y;
};
这适用于鼠标。然而,在iphone或ipad上运行safari时,ontouchstart似乎报告了正确的位置,而ontouchend则没有。无论我触摸到哪里,Ontouchend都会给出相同的坐标。我注意到,当并且只有当我稍微滚动页面并触摸画布中的相同位置时,它返回的坐标似乎会发生变化。
知道为什么ontouchstart和ontouchend会给出不同的位置值吗?
谢谢!
所以,我需要使用:
MTEnd(windowToCanvas(e.changedTouches[0].pageX, e.changedTouches[0].pageY));
但只适用于接触者,而不是接触者。
相关文章:
- EaseJS拖放;放下(动画CC)电影剪辑的鼠标坐标
- Node.js v6.2.0类扩展不是函数错误
- Jquery菜单操作不稳定,定位不正确,存在一般错误
- document.open/document.write没有正确地清除chrome中的文档——这是chrome的错误吗
- 试图在引导模式内动态生成图表,得到offsetWidth错误
- 为什么会出现错误;未捕获的类型错误:undefined不是函数;
- 我如何修复包含在captcha的addthis中的错误
- ontouchend-ios返回错误的坐标
- 断言错误:断言失败:坐标数组的长度应与步幅匹配
- Amcharts-地图:自定义地图上的错误坐标(纬度/经度)(罗马尼亚县级)
- 谷歌地理编码器返回错误的地址坐标
- jQuery UI:Y 鼠标在放置可拖动对象时坐标错误
- 为什么画布中的鼠标坐标是错误的
- Jquery弹出2许多警报和错误的坐标
- Gnuplot:网站上嵌入的交互式SVG图形在缩放时显示错误的鼠标坐标
- Nokia Here地图错误时,建立一个路线与许多坐标
- 将元素拖放到iframe中.可降区域坐标错误,碰撞错误
- 坐标转换javascript库Pro4js错误结果
- Javascript谷歌地图坐标,parseFloat'坐标'+随机数错误
- 画布填充矩形有错误的 X 坐标