Firefox의 "Drag"이벤트 핸들러 내에서 ClientX와 Client가 작업하도록하려면 어떻게해야합니까?
-
23-08-2019 - |
문제
Mozilla Firefox 3.x는 "Ondrag"이벤트를들을 때 버그가있는 것 같습니다. 이벤트 객체는 드래그중인 객체의 위치를보고하지 않으며 ClientX, Clienty 및 기타 화면 오프셋이 모두 0으로 설정되어 있습니다. 이는 드래그 된 요소를 기준으로 프록시 요소를 만들고 싶기 때문에 ClientX와 Client가 위치를 조정하기 위해 프록시 요소를 만들고 싶었 기 때문에 매우 문제가됩니다.
HTML5의 SetDragimage와 같은 멋진 것들이 있다는 것을 알고 있지만 브라우저 사이의 기본 DD에 대한 일반적인 추상화를 제공하고 싶습니다.
결함 코드 :
document.addEventListener('drag', function(e) {
console.log(e.clientX); // always Zero
}, false);
참고 :이 문제는 다른 이벤트 (DragStart, Dragover)에서 발생하지 않으며 MouseMove 이벤트는 Somethin '을 드래그하는 동안 캡처 할 수 없습니다.
도와주세요 !
해결책
솔루션을 찾았고 문서 수준에서 "Dragover"이벤트에 리스너를 배치했는데 이제 전 세계적으로 공유 된 객체를 통해 노출 될 수있는 올바른 x 및 y 속성을 얻습니다.
다른 팁
HTML 5의 드래그 이벤트는 오늘날 브라우저에서 완전히 작동하지 않습니다. 드래그 N 방울 상황을 시뮬레이션하려면 다음을 사용해야합니다.
- var true를 설정하여 onmousedown 이벤트를 추가하십시오.
- var false를 설정하여 onmouseup 이벤트를 추가하십시오.
- OnMouseMove 이벤트를 추가하여 VAR이 사실인지 확인하고 좌표에 따라 DIV를 이동하십시오.
이것은 항상 나를 위해 일했습니다. 문제에 직면하면 다시 연락을 취하면 몇 가지 예를 제공 할 수 있습니다.
행운을 빕니다!
제휴하지 않습니다 StackOverflow