2012-06-04 2 views
1

내가 그런 일 할 노력하고있어 :텍스트 상자의 커서 위치를 픽셀 값으로 가져 오는 방법은 무엇입니까?

사용이 텍스트 상자에 "#"을 입력 enter image description here은 ColorPicker 구성 DIV가 커서 위치의 바닥에 열려 있어야합니다. element.selectionStart를 사용하여 커서의 순서를 가져올 수는 있지만 신뢰할 수있는 방법은 아닙니다. 픽셀 값이어야합니다. 어떠한 제안?

+0

마우스 포인터 위치를 읽습니다. –

+0

그러나 마우스 포인터는 아무 곳에 나있을 수 있습니다. –

+0

맞습니다.하지만 텍스트 영역이 어디에 있는지 확인할 수도 있습니다. –

답변

1

텍스트 필드가 스크롤되지 않을 것이라고 확신하는 경우보기 밖으로 배치 된 div의 텍스트 필드의 글꼴 및 상자 크기를 복제 한 다음 해당 텍스트 필드와 동일한 내용으로 범위를 측정 할 수 있습니다. 텍스트 필드.

+0

이 과정은 사용자가 트리거를 입력 할 때 커서가 줄 끝 부분에있는 경우에만 작동합니다./ –

+0

inputselector.selectionStart * 6px + inputoffset.left를 사용하면 커서를 사용할 필요가 없습니다. 하지만 텍스트 상자가 가로로 스크롤되었는지 아닌지를 확인할 수는 없습니다. :/ –

+0

입력 요소의 스크롤 가능성으로 인해 얻을 수 있다고 생각합니다. 그렇지 않으면 #의 인덱스를 추적하고 문자열 내에 방금 추가 된 위치를 파악하는 것이 상당히 쉽습니다. 그러나 텍스트의 스크롤 오프셋을 알지 못하면 시각적으로 말하면 캐릭터가 상자 안쪽까지 얼마나 있는지 알 수 없습니다. –