模拟html5的触摸事件
simulate touch events for html5
我正在构建一个html5游戏,我想以编程方式将多点触摸事件发送到浏览器。
我的想法是设置一个节点服务器并将事件转发到网页。有没有任何库已经做到了这一点,或者我可以模拟这样的事件?
例如,this page
支持多点触摸,但在桌面上,由于只有鼠标,您无法进行交互。如果我可以模拟这些事件,那么我就可以与这些对象进行交互。我在找这样的东西。。。任何指针都是有用的。。。
我尝试使用::
var e = document.createEvent('UIEvent');
e.initUIEvent('touchstart', true, true);
e.touches = [{pageX: x, pageY: y}];
我没有得到以上的回应,然后我使用了这个
var e = document.createEvent('TouchEvent');
e.touches = [{pageX: x, pageY: y}];
如果我没有处于移动模拟模式,我会得到一个错误,但当我移动到移动模拟模式时,我没有得到响应
我还尝试过:this
,但没有运气
更新
从这里
var type = 'move'; // or start, end
var event = document.createEvent('TouchEvent');
event.initEvent('touch' + type, true, true);
event.constructor.name; // Event (not TouchEvent)
var point = {x: 10, y: 10 };
event.touches = [{
identifier: Date.now() + i,
pageX: x,
pageY: y,
screenX: x,
screenY: y,
clientX: x,
clientY: y
}, { identifier: Date.now() + i,
pageX: point.x,
pageY: point.y,
screenX: point.x,
screenY: point.y,
clientX: point.x,
clientY: point.y}]
dispatchEvent(event);
此操作有效,但仅适用于mobile emulation mode
这样会引发触摸事件,但对于real
触摸,我有以下数据
TouchEvent {metaKey: false, altKey: false, shiftKey: false, ctrlKey: false, changedTouches: TouchList…}
但是对于自定义事件changedTouches元素为null,是的,我尝试设置e.touches to e.changedTouches
TouchEvent {metaKey: false, altKey: false, shiftKey: false, ctrlKey: false, changedTouches: null…}
从这里开始
var type = 'move'; // or start, end
var event = document.createEvent('Event');
event.initEvent('touch' + type, true, true);
event.constructor.name; // Event (not TouchEvent)
var point = {x: 10, y: 10 };
event.touches = [{
identifier: Date.now() + i,
pageX: x,
pageY: y,
screenX: x,
screenY: y,
clientX: x,
clientY: y
}, { identifier: Date.now() + i,
pageX: point.x,
pageY: point.y,
screenX: point.x,
screenY: point.y,
clientX: point.x,
clientY: point.y}]
dispatchEvent(event);
这只适用于mobile emulation mode
相关文章:
- 谷歌地图劫持了iphone's滚动(触摸事件)-如何恢复
- 如何在jquery中找到鼠标滚轮/触摸移动事件的走向
- 如何使用纯javascript的移动触摸事件
- 触摸启动事件未在iframe iOS 6中启动
- 如何检测滚动事件是否像在触摸设备上一样只触发一次
- 触摸滑动所有事件
- 移动定时触摸事件
- 模拟html5的触摸事件
- Phonegap/Cordova:如何添加Javascript多点触摸事件
- 如何在AngularJS中监听点击事件,而不是触摸事件
- 我可以让我的网站的内容可编辑区域对安卓股票浏览器上的触摸事件更敏感吗
- 当鼠标也在触摸另一个元素时,d3.js鼠标悬停事件未被触发
- 在 Firefox 中“解析”触摸事件
- 将触摸事件转换为鼠标事件仅每秒有效一次
- 在移动 Safari 上向下拖动时,触摸事件停止触发 - iPad HTML5
- 如何在 javascript 中触发触摸事件
- 为什么触摸事件不在手指按压的中间
- 如何启用离子多点触摸事件
- JavaScript事件.触摸数组
- D3鼠标事件触摸事件,即点击->支持触摸事件