시도 :
textAreaToScroll.getElement().setScrollTop(textAreaToScroll.getElement().getScrollHeight());
이 바닥에 요소를 스크롤됩니다.
편집 :
이 (내가 아는 한)이 어떤 커서 위치가로 이동하려면 이렇게하는 쉬운 방법. 나는 브라우저가 커서가 켜져 있는지를 묻는 방법이 없다고 생각한다. 방금 스크롤 할 시간의 대략적인 추정치를 추측 할 수있는 (실제로 테스트하지 않은) 아이디어가 있습니다.
int cursorPos = textAreaToScroll.getCursorPos();
long offsetRatio = cursorPos/textAreaToScroll.getText().length();
//gives 0.0 to 1.0
offsetRatio += someMagicNumber; // -0.1 maybe?
// Depending on the font you may need to adjust the magic number
// to adjust the ratio if it scrolls to far or to short.
offsetRatio = offsetRatio>0.0 ? offsetRatio : 0; //make sure
//we don't get negative ratios
//(negative values may crash some browsers while others ignore it)
textAreaToScroll.getElement().setScrollTop(
textAreaToScroll.getElement().getScrollHeight() * offsetRatio);
대략 원하는 거리로 스크롤 할 수 있습니다. 이것은 커서 위치를 텍스트의 길이로 나눈 것이고 줄 수는 나지 않는 (계산하기 어렵다) 점을 감안할 때 각 줄은 거의 같은 양으로 채워져 있다고 가정합니다. 수동 개행 문자는이 추정치를 왜곡하고 비례 글꼴은 정확하지 않게 만듭니다.
커서가 텍스트 영역의 상단보다 약간 아래쪽에있는 경우 커서가 계속 보일 수 있으므로 너무 짧지 않게 너무 짧게 스크롤되도록 비율을 조정해야 할 수 있습니다.
내가 실제로 이것을 테스트하지 않았다고 말했기 때문에 나는 논리와 다른 미묘한 버그를 거꾸로했을지도 모른다.
이 코드 불행히도 커서 위치가 아닌 TextArea를 아래로 스크롤합니다 .-( – Witek
커서를 끝으로 설정하면 맨 아래 줄에 있지 않습니까? –
TextArea가 끝이 아닌 커서의 위치로 스크롤하는 솔루션이 필요합니다. 예 : TextArea의 높이는 5 줄입니다. 텍스트 내용은 50 줄입니다. 커서는 25 번째 줄에 있습니다. 나는 scrollToCursorPosition() 메서드를 사용하여 줄 50이 아니라 25 번째 줄로 스크롤합니다. – Witek