2012-03-03 3 views
2

특정 위젯이 뷰포트에 표시되는지 여부를 결정할 수 있습니까?GWT의 뷰포트에 위젯이 표시되는지 확인

내 listwidget의 마지막 위젯이 사용자에게 표시되면 더 많은 데이터를로드하기를 원합니다. 나는 스크롤 이벤트를 처리 할 수 ​​있고 마지막 위젯이 표시되는지와 모든 이벤트 확인을 위해 rpc의 불이 더 많은 데이터를 얻는 지 알 수있었습니다.

답변

0

BR은 GWT Showcase's CellList sample에서 ShowMorePagerPanel에서보세요.

당신은 위젯의 getElement() 사용할 수의 getOffsetTop()과 스크롤 요소의 getScrollTop() (A ScrollPanel에 대한 getVerticalScrollPosition()에 해당)이 위젯이보기 (조심 현재 인지를 계산하는 요소 'getOffsetParent()하지만, 당신이 할 수 있습니다 positionrelative에이 위젯의 ​​오프셋 부모)

1

여기 (가 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; 
} 
관련 문제