在 HammerJS 2.0 中手动触发事件

Manually trigger event in HammerJS 2.0

本文关键字:事件 HammerJS      更新时间:2023-09-26

我正在尝试在 HammerJS 中手动触发事件,但到目前为止我看不到任何进展。此外,这里还有链接,可以带您进入版本1的HammerJS文档wiki。

有人可以告诉我如何使用 HammerJS 2.0 手动触发事件吗?

这就是 HammerJS 测试触发触摸事件的方式。

function createTouchEvent (name, x, y, identifier) {
    var event = document.createEvent('Event');
    event.initEvent('touch' + name, true, true);
    event.touches = event.targetTouches = [{
        clientX: x,
        clientY: y,
        identifier: identifier || 0
    }];
    //https://developer.mozilla.org/en-US/docs/Web/API/TouchEvent.changedTouches
    event.changedTouches = [{
        clientX: x,
        clientY: y,
        identifier: identifier || 0
    }];
    return event;
}
function dispatchTouchEvent (el, name, x, y, identifier) {
    var event = createTouchEvent(name, x, y, identifier);
    el.dispatchEvent(event);
}

例如,您可以触发水龙头:

dispatchTouchEvent(element, 'start', 50, 50);
dispatchTouchEvent(element, 'end', 50, 50);

或平底锅:

dispatchTouchEvent(element, 'start', 50, 50);
dispatchTouchEvent(element, 'move', 70, 50);
dispatchTouchEvent(element, 'end', 70, 50);