我需要通过触摸来移动整个画布,就像拖放动作一样
画布的位置应该来自
flattenCanvas.height = canvas.height = SCREEN_HEIGHT - menu.container.offsetHeight;
canvas.style.position = 'absolute';
canvas.style.top = menu.container.offsetHeight+'px';
canvas.style.left = -(menu.container.offsetHeight)/2+'px';
context = canvas.getContext("2d");
和绘图或滚动的触摸来自此
else if(event.touches.length == 1) ////one finger scrolling
{
canvas.style.top = (((event.touches[0].pageY)))+'px';
canvas.style.left = (((event.touches[0].pageX)))+'px';
}
从上一个代码我可以通过一次触摸移动画布,但它不是真的拖动。 如何修复画布屏幕的运动?
这是webapp demo
的演示答案 0 :(得分:1)
根据these docs,您要处理的事件是touchmove
。
您问题中的代码似乎存在于touchstart
处理程序中;只需在touchmove
处理程序中执行相同的代码,即可在“拖动”期间不断更新。
您要做的是通过触摸事件的“当前”(canvas
)和“开始”之间的差异来抵消目标元素(在本例中为touchmove
元素)({ {1}})职位。为此,您应该在touchstart
处理程序中捕获目标和触摸的位置。然后,在touchstart
处理程序中,取出触摸位置的差异,并将它们添加到目标的起始位置。这可能看起来像:
touchmove