触摸模拟器 - Hammer.js
Hammer提供了一个调试工具,可以在浏览器中模拟触摸支持。它触发符合W3C规范的DOM触摸事件。当按下shift
键时,您还可以使用多点触摸事件,如捏合和旋转。您也可以在不使用Hammer.js的其他项目中使用此工具。
如何使用
包含JavaScript文件,并在任何其他处理触摸输入的库之前调用TouchEmulator()
函数。它将设置一些伪造属性来欺骗一些库的触摸检测,并在鼠标目标上触发touchstart
、touchmove
和touchend
事件。
html
<script src="touch-emulator.js"></script>
<script>
TouchEmulator()
</script>
javascript
function log(ev) {
console.log(ev)
}
document.body.addEventListener('touchstart', log, false)
document.body.addEventListener('touchmove', log, false)
document.body.addEventListener('touchend', log, false)
该脚本还包括document.createTouch
和document.createTouchList
的polyfills。
工作原理
它监听mousedown
、mousemove
和mouseup
事件,并将它们转换为触摸事件。如果鼠标事件的shiftKey
属性为true
,则启用多点触摸。
该脚本还阻止页面上的以下鼠标事件:mousedown
、mouseenter
、mouseleave
、mousemove
、mouseout
、mouseover
和mouseup
。
Web平台测试
该脚本已通过w3c web平台测试,并通过了所有测试,除了以下测试:
- assert_true: event is a TouchEvent event expected true got false
- 我们触发的事件类型为
Event
- 我们触发的事件类型为
- assert_equals: touch list is of type TouchList expected “[object TouchList]” but got “[object Array]”
- 我们返回的触摸列表是一个数组而不是
TouchList
对象
- 我们返回的触摸列表是一个数组而不是
- assert_equals: touch is of type Touch expected “[object Touch]” but got “[object Object]”
书签工具
javascript
javascript: !(function (a) {
var b = a.createElement('script')
;(b.onload = function () {
TouchEmulator()
}),
(b.src = '//cdn.rawgit.com/hammerjs/touchemulator/0.0.2/touch-emulator.js'),
a.body.appendChild(b)
})(document)
从仓库下载脚本,或运行bower install hammer-touchemulator
。