1
HammerJS에서 수동으로 이벤트를 실행하려고했지만 현재 진행 상황을 볼 수 없습니다. 또한 버전 1의 HammerJS 문서 wiki 링크가 있습니다.HammerJS 2.0에서 이벤트를 수동으로 트리거
HammerJS 2.0을 사용하여 수동으로 이벤트를 발생시키는 방법을 알려줄 수 있습니까?
HammerJS에서 수동으로 이벤트를 실행하려고했지만 현재 진행 상황을 볼 수 없습니다. 또한 버전 1의 HammerJS 문서 wiki 링크가 있습니다.HammerJS 2.0에서 이벤트를 수동으로 트리거
HammerJS 2.0을 사용하여 수동으로 이벤트를 발생시키는 방법을 알려줄 수 있습니까?
이것은 HammerJS tests이 터치 이벤트를 발생시키는 방법입니다.
dispatchTouchEvent(element, 'start', 50, 50);
dispatchTouchEvent(element, 'end', 50, 50);
또는 팬 :
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, 'move', 70, 50);
dispatchTouchEvent(element, 'end', 70, 50);
당신이 개발, 그래서 만약이 아닌 터치 장치에서 작동하지 않는 나타납니다 그런 다음 터치 스크린 컴퓨터에서 단위 테스트를 수행 한 다음 비 터치 시스템에서 실행하면 해머가 절대로 이벤트를 볼 수 없습니다. 적어도 이것이 Chrome에서보고있는 상황입니다. (아직 PhantomJS에서는 정상적으로 작동하는 것 같습니다.) – Aardvark
@Aardvark [HammerJS 테스트] (https://github.com/hammerjs/hammer.js/tree/master/tests)를 실행 해 보았습니까? 그들은 동일한 코드를 사용합니다. – Guglie
문제는 Hammer에 내장 된 기능 감지로 인해 실행중인 브라우저/컴퓨터에서 지원되는 이벤트 만 수신하는 InputClass가 생성된다는 것이 었습니다. 변경하지 않으면 마우스 입력 만 감지 할 수 있습니다. Hammer 생성자 (Hammer.TouchMouseInput)에 입력 클래스를 지정하여이 기능 감지를 건너 뜁니다. 테스트 도중이 작업을 수행하면 Hammer는 입력 클래스 인 TouchMouseInput이 모든 시스템에서 내 시뮬레이션 된 터치 이벤트를 '인식'합니다. Hammer의 단위 테스트가 기능 탐지를 우회하거나 조작하여 모든 포인터 입력 유형을 처리 할 수 있다고 의심됩니다. – Aardvark