문제

그것은 변경할 수의 위치에 아바타로 도장을 도 dnd api?순간에 드래그 할 때 아바타의 드래그 항목의 오른쪽에 나타납니다 그 아래에는 마우스 커서입니다.나는 그것을 동일한 위치에 마우스 커서입니다.나는 몇 가지 유용성에서 테스트를 내 응용 프로그램,그리고 대부분의 사람들이 보이려고 시도하려고 끌어 아바타,드롭 영역,반대로 움직이는 커서를 놓 영역입니다.모든 입력이 좋은 것입니다.감사합니다!

도움이 되었습니까?

해결책

죄송하지 않을 가능하에 대한 기술적 이유입니다.

업데이트:의 인기있는 요구 이러한 기술적 이유:

  • 이 있을 때 노래 오른쪽 마우스,노드를 가져오는 모든 마우스 이벤트입니다.
  • 마우스는 이벤트까지 거품이 부모 chain.
  • 이제는 상상을 움직이는 노드와 마우스 이 노드는 항상 모든 마우스 이벤트입니다.
  • 그것이 의미하는 모든 다른 노드,예를 들어,목표를 얻을 수 없습 마우스 이벤트지 않는 한 그것은 부모의 이동 노드입니다.일반적으로 이러한 경우는 없습니다.

하지만 나는 다른 사람들은 그것을 할 수 있습니다!그것이 있어야 가능하다!네,그것이 가능한...원칙적으로:

  • 자 등록한 모든 대상 노드입니다.
  • Let's catch 관련 마우스 이동이 직접 이벤트에 최상위(document).
  • 면 우리가 감지 끌기 작업을 하자 다음과 같다:
    1. 계산기하학(경계 상자)의 모든 목표입니다.
    2. 에서 모든 마우스 이동이지를 확인해 보도록 하겠습니다 경우 현재 마우스 위치와 겹치의 대상이 됩니다.보너스 포인트"A+"학생:검색와 겹치는 다른 노드 e.g 을 때,대상 부호 화장품을 위한 이유,그리고 프로세스 이 상황습니다.
    3. 는 경우 현재 마우스 위치와 겹치,대상자를 시작"드롭다는 가능한"행동이,예를 들어,일부를 보여 신호 그래서 최종 사용자에 알고 있는 그녀는 삭제할 수 있습 now.

왜 도장하지 않는?의 수에 대한 기술적 이유(마지막으로 우리는 거기!):

  • 노드의 기하학 계산이 악명이 버그에서 대부분의 브라우저입니다.한 빨리 테이블은 관련된,또는 어떤 다른 아닌 사소한의 의미 배치할 수 없는 100%확실하는 경계 상자이 올바른 것입니다.
  • 기하학의 계산은 비용이 많이 드는 작업,그리고 우리는 그것을 할 수있는 적어도 한번에 끌기 작업에 대한 모든 대상 가정을 변경할 수 없습하는 동안 끌기 작업(항상은 아니 경우).브라우저 수 있습 리플로우는 노드를 위한 많은 이유⇒이동할 수 있/기존의 크기를 조정 대상에는,그래서 우리는 경계해야한다.
  • 일반적으로 계산된 상자에서 지켜 목록⇒확인에 대한 목록을 교차로는 O(n)(선형)⇒확장자의 대상에 성장합니다.
  • 모든 마우스 이벤트 처리기해야 한 빨리,그렇지 않으면 브라우저의 마우스 이벤트 처리 시설이 될 수 있습니다"broken"지도를 예측할 수 없는 부작용이 나타납니다.시 이전에 대한 포인트는 이유 마우스 이벤트 처리 속도가 느려질 수 있습니다.
  • 을 개선에 선형 검색이 가능합니다,예를 들어,2D 공간 나무를 사용할 수 있습니다,하지만 그것은(으)로 JavaScript 코드⇒더 많은 물건을 다운로드는 클라이언트 측에서⇒일반적으로 가치가 있지 않습니다.

어떻게 알 수 있을까요?기 때문에 도장용의 이런 종류의 건강한 생활을 하고 체지방을 줄이 이전 버전에서,그리고 우리가 아프고 피곤 싸우 문제를 설명한다.모든 상태가 호전되고 있다 오르막 전투,증가하는 코드 사이즈.마지막으로 우리는 결정에 대하여 재창조 및 복제 메커니즘에 내장되어 있는 브라우저입니다.브라우저가 실제로 동일한 작동:계산기하학의 노드를 찾는 기본 노드를 전달 마우스 이동의 이벤트입니다.

현재 구현을 사용하지 않는 마우스를 움직 및 이벤트지 않을 계산한 형상입니다.대신 그것은에 의존하고 마우스/이벤트를 감지하여 목표 후에는 끌기 시작했습니다.그것을 안정적으로 작동과 같습니다.

또 다른 주름에 이 이야기:Dojo 취급 대상으로 용기에 매우 일반적으로 사용한 경우(쇼핑 카트,다시 정렬 아이템,편집하는 계층).선형 컨테이너 및 일반적인 나무들이 구현되는 순간에,사용자 정의 컨테이너가 가능합니다.드래그 앤 드롭하는 경우 당신이 볼 수 있 드롭 끌고 항목에서 적절한 위치에서 컨테이너 대상,예를 들어,삽입하는 사이에 그들은 기존 항목입니다.을 구현하는 이 기능을 사용하여 기하학적 계산과를 확인 것이 매우 비싸다.

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