Firefox의 "Drag"이벤트 핸들러 내에서 ClientX와 Client가 작업하도록하려면 어떻게해야합니까?

StackOverflow https://stackoverflow.com/questions/887316

문제

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 방울 상황을 시뮬레이션하려면 다음을 사용해야합니다.

  1. var true를 설정하여 onmousedown 이벤트를 추가하십시오.
  2. var false를 설정하여 onmouseup 이벤트를 추가하십시오.
  3. OnMouseMove 이벤트를 추가하여 VAR이 사실인지 확인하고 좌표에 따라 DIV를 이동하십시오.

이것은 항상 나를 위해 일했습니다. 문제에 직면하면 다시 연락을 취하면 몇 가지 예를 제공 할 수 있습니다.

행운을 빕니다!

HTML5의 SetDragimage와 같은 멋진 것들이 있다는 것을 알고 있지만 브라우저 사이의 기본 DD에 대한 일반적인 추상화를 제공하고 싶습니다.

하지만 왜 이런 일을 하는가, 도서관이 없어 jQuery & 원기 크로스 브라우저 드래그 앤 드롭에 사용할 수 있습니까?

그렇지 않으면 자신의 DD 라이브러리를 구현하려면 두 라이브러리가 객체 지향 패러다임을 따르기 때문에 방법을 도와 주거나 확장 할 수 있습니다.

이것은 많은 시간을 절약 할 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top