특정 위젯이 뷰포트에 표시되는지 여부를 결정할 수 있습니까?GWT의 뷰포트에 위젯이 표시되는지 확인
내 listwidget의 마지막 위젯이 사용자에게 표시되면 더 많은 데이터를로드하기를 원합니다. 나는 스크롤 이벤트를 처리 할 수 있고 마지막 위젯이 표시되는지와 모든 이벤트 확인을 위해 rpc의 불이 더 많은 데이터를 얻는 지 알 수있었습니다.
특정 위젯이 뷰포트에 표시되는지 여부를 결정할 수 있습니까?GWT의 뷰포트에 위젯이 표시되는지 확인
내 listwidget의 마지막 위젯이 사용자에게 표시되면 더 많은 데이터를로드하기를 원합니다. 나는 스크롤 이벤트를 처리 할 수 있고 마지막 위젯이 표시되는지와 모든 이벤트 확인을 위해 rpc의 불이 더 많은 데이터를 얻는 지 알 수있었습니다.
BR은 GWT Showcase's CellList
sample에서 ShowMorePagerPanel
에서보세요.
당신은 위젯의 getElement()
사용할 수의 getOffsetTop()
과 스크롤 요소의 getScrollTop()
(A ScrollPanel
에 대한 getVerticalScrollPosition()
에 해당)이 위젯이보기 (조심 현재 인지를 계산하는 요소 'getOffsetParent()
하지만, 당신이 할 수 있습니다 position
relative
에이 위젯의 오프셋 부모)
여기 (가 JQuery와 솔루션 here에서 번역) 작업을 수행하는 GWT 방법입니다 만들기 위해 스크롤 요소의 CSS 설정합니다.
/**
* @param widget the widget to check
* @return true if the widget is in the visible part of the page
*/
private boolean isScrolledIntoView(Widget widget) {
if (widget != null) {
int docViewTop = Window.getScrollTop();
int docViewBottom = docViewTop + Window.getClientHeight();
int elemTop = widget.getAbsoluteTop();
int elemBottom = elemTop + widget.getOffsetHeight();
return ((elemBottom <= docViewBottom) && (elemTop >= docViewTop));
}
return false;
}