2010-08-18 3 views
4

키 다운의 텍스트 영역에서 캐럿의 X/Y 좌표를 가져 오려고합니다. 나는 열심히 수색했으나 운이 전혀 없다면 화면상의 X/Y 좌표가 아닌 위치를 얻을 수있는 것 같습니다.Textarea X/Y 캐럿 좌표 - jQuery 플러그인

답변

5

AFAIK,이 일을하는 유일한 가능한 방법 :

  1. 는 DIV 내부의 DOM
  2. 장소에 SPAN을 DIV를 추가 DIV에
  3. 에 TEXTAREA의 내용을 추가 character offset of the caret에서 .

주 (당신이 텍스트 영역 또는 페이지를 기준으로 X/Y 좌표를할지 여부에 따라)하여 SPAN ($(span).offset() ...)의 오프셋 (offset)를 뺀 DIV에의 오프셋 (offset)를 가지고 가십시오 : 때 텍스트를 TEXTAREA에서 DIV로 복사하는 경우 오프셋 (너비, 높이, 채우기, 여백, 테두리, 글꼴 크기, 줄 높이 등)에 영향을 줄 수있는 관련 CSS 속성을 복사해야합니다.

+0

일반적인 알고리즘이지만 [브라우저 호환성] (https://github.com/component/textarea-caret-position/issues/10#issuecomment-37786158)과 관련하여 다양한 차이가 있습니다. ** Component.io ** 팀은 간단한 모든 [jQuery가 필요없는 플러그인] (http://stackoverflow.com/a/22446703/1269037)을 작성했습니다. –

2

정확하게 작성하기 위해 this jQuery 플러그인을 작성했습니다.

+0

위대한 작품. 사용하기 쉽다. 그것에 대해 불평 할 수 없다. – WoIIe

+0

@WoIIe : 나는 작은 불만을 가지고있다 : 스크롤바가 있다면, 그 위치는 한 줄 바뀔 수있다. 또한 [캐럿 위치는 jQuery를 사용하지 않고도보다 간단하게 결정할 수 있습니다.] (http://stackoverflow.com/a/22446703/1269037). –