쉬엄쉬엄 제작 중인 위젯 빌더 컴포넌트.

요즘은 모바일 동작 구현을 시도하고 있습니다.

jQuery UI를 touch 이벤트로 변환시켜주는 라이브러리도 있긴 하지만, 제 경우엔 이벤트 버블링이 심하고 원하는 동작이 구현되지 않는 부분도 있어서 일반적인 js로만 시도를 하고 있습니다.

근데 이게 꽤 공부도 되고 끝없는 시행착오와 실습이 되네요ㅜㅜ

 

......

 

일반적으로 드래그 앤 드롭은 html5 api의 dragstart, dragenter, dragover, dragend, 그리고 drop 등의 이벤트를 사용합니다.

위젯 빌더의 첨부파일 섬네일의 삽입 시퀀스도 dragstart, drop 이벤트 사용하였습니다.

여기를 참조 https://xetown.com/topics/1190672

 

그런데 이게 모바일에선 구현되지 않는 문제가 있습니다. 그래서 touchstart, touchmove, touchend 등의 이벤트로 드래그 앤 드롭 이벤트를 대체해줘야 합니다.

물론 동작 자체가 동일한 것은 아니어서, 터치포인트의 좌표를 구해서 현재 위치의 요소를 식별해주거나 하는 동작들을 더해줘야 합니다.

 

현재는 일단 데스크탑에서의 드래그와 드롭 기능을 모바일 터치로 구현하는 데 성공했으며(ck에디터 인라인 에디터에도), touchmove시 droppable 요소의 하이라이트 효과, touchend 이후 커서 포지션에 따른 텍스트/이미지 삽입, 텍스트/이미지 삽입 후 undo/redo enabling 등의 후속작업이 남아 있습니다.

... 과연 성공할 수 있을지 후우우우ㅡ

  • ?
    화팅 입니다
    항상 잘해왔으니 이번에도 성공 하실겁니다 ㅎ
  • ? Lv19
    아무리 구글링을 해봐도 touchevent 이후에 좌표값에
    따라 droppable 요소에 커서 포지션을 세팅해주는 팁이 안 보이네요ㅜ
    아 또 몇 일을 고심해야 하는지ㅜㅜ
  • ?
    화이팅~^_^
    아참, 스킨제작은 망해서 저만 쓸께요 ㅋㅋ
  • ? Lv19
    ㅋㅋㅋㅋ 알겠습니다~ 위젯 하나 잘못 만들어서 도토리묵님 귀찮게 해드렸네요. 그래도 고심해주셔서 감사해요~
  • Lv19 ?
    귀찮게라뇨 ㅋㅋㅋ
    (시무룩)
  • ? Lv19
    시무룩이라뇨ㅜ
    ㅋㅋㅋ 가벼운 마음으로 즐거운 코딩합시다요~!
  • Lv6
    또 어마어마한 것을 준비하고 계시군요....!
    늘 좋은 기능들 잘 쓰고 있습니다 ㅎㅎ
  • Lv6 Lv19
    뭔가 욕심을 부리는 바람에 이도저도 안되고 중단하게 될 가능성이 커지고 있어요ㅜ 현실에선 못볼 컴포넌트가 될 수도ㅜㅜ
  • Lv4
    고생 많으시네요!
  • Lv4 Lv19
    ㅎㅎ 격려 감사합니다~