在HammerJS 2.0中手动触发事件

时间:2014-11-17 22:03:23

标签: javascript triggers hammer.js manual

我正在尝试在HammerJS中手动触发事件,但截至目前我看不到任何进展。此外,这里有链接带你HammerJS文档维基,它是版本1。

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

1 个答案:

答案 0 :(得分:0)

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

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);