HTML5 画布触摸平移/滚动
HTML5 canvas touch panning/scrolling?
我正在做我的第一个HTML5画布项目。它提供了一个网格,为简单起见,大小为 4x4。它必须是可缩放的,因为暂时不需要捏缩放,使用放大/缩小按钮就足够了。我让它工作,以便第一次放大将可见大小加倍到 2x2,下一个显示 1 个正方形的区域,对用户来说,似乎网格的中心在缩放时没有移动,进一步缩放是不可能的。所以我控制了 scale() 和 translate()。
初始视图
1 2 3 4 5 6 7 8 9 10 11 1213 14 15 16
第一次缩放后
6 7 10 11
我创建了按钮来使用 translate() 移动可见区域固定数量的像素,所以基本上我只需要收听正确的触摸事件并做更多的事情,对吧?但无论我尝试什么,我都不知道如何使用触摸屏来做到这一点(我正在Android上开发)。我看过很多例子,包括众所周知的 http://phrogz.net/tmp/canvas_zoom_to_cursor.html
如果有人能指出我正确的方向,我将不胜感激?
此外,目前我的"步骤滚动"可以越过画布边框,这将是监视以了解边框是否接近的正确属性?
我使用的是纯Javascript,jQuery用于项目的其他部分。我宁愿坚持这两个,这对我来说也是一个学习项目。但是,如果没有其他方法,我可以包含另一个库。
抱歉,我不知道所需的确切代码,但如果有的话,那会稍微好一点,因为最终项目仍然是您自己的代码,并且需要您自己实际做一些事情。
无论如何,基本思想是这样的:
var touching;
setInterval(function(){
if (not user-touching-screen){
touching=0;
} else {
if (touching == 0){
touching = 1;
ix = where-user-put-finger-down-x-coord; // find x-coord of finger position
iy = where-user-put-finger-down-x-coord; // find y-coord of finger position
} else {
mx = where-finger-is-now-x; // find x-coord of finger position
my = where-finger-is-now-y; // find y-coord of finger position
translate(mx-ix,my-iy); /*translate entire canvas right mx-ix units,
* left my-iy units
*/
}
}
}, 5);
我猜你可以只使用鼠标x/y报告器来获取用户的手指位置。
相关文章:
- 谷歌地图劫持了iphone's滚动(触摸事件)-如何恢复
- 如何检测滚动事件是否像在触摸设备上一样只触发一次
- Sencha触摸:工具栏无法正常滚动
- jQuery触摸滑动内容滚动功能
- 停止触摸滚动还可以防止单击链接
- 移动/触摸屏幕 - 滑动时水平滚动
- 允许在隐藏溢出的情况下进行触摸滚动
- 整页.js触摸滚动固定元素
- 检测触摸向上或向下滚动
- 移动HTML:触摸结束后继续滚动
- JS中的触摸板滚动检测,没有库
- 拖动滚动触摸设备,如手机/ iPad
- 在触摸设备上,滚动是使用 javascript 创建的,如何防止触摸触发单击
- 拉动刷新:滚动过程中触摸可将滚动条设置为页面底部
- 触摸事件的挖空事件绑定导致滚动问题
- 一页滚动iPad触摸滚动
- 触摸板滚动jQuery的问题
- 触摸拖动画布时滚动页面
- 在移动safari中有条件地阻止滚动/触摸事件
- iOS:-webkit溢出滚动:触摸并滚动顶部