确定小部件是否显示在GWT的视口中
是否可以确定特定的小部件是否显示在视口中 一旦我的listwidget中的最后一个小部件显示给用户,我想开始加载更多数据。我想我可以处理滚动事件,并为每个事件检查是否显示最后一个小部件,以及触发rpc以获取更多数据确定小部件是否显示在GWT的视口中,gwt,widget,viewport,Gwt,Widget,Viewport,是否可以确定特定的小部件是否显示在视口中 一旦我的listwidget中的最后一个小部件显示给用户,我想开始加载更多数据。我想我可以处理滚动事件,并为每个事件检查是否显示最后一个小部件,以及触发rpc以获取更多数据 BR从中查看ShowMorePagerPanel 您可以使用小部件的getElement()的getOffsetTop()和滚动元素的getScrollTop()(相当于getVerticalScrollPosition()用于ScrollPanel)来计算小部件当前是否在视图中(注
BR从中查看
ShowMorePagerPanel
您可以使用小部件的
getElement()
的getOffsetTop()
和滚动元素的getScrollTop()
(相当于getVerticalScrollPosition()
用于ScrollPanel
)来计算小部件当前是否在视图中(注意元素的getOffsetParent()
但是,您可能希望将滚动元素的CSS位置设置为相对以使其成为小部件的偏移父项)以下是执行此任务的GWT方法(它是从JQuery解决方案翻译而来的)
/**
*@param小部件要检查的小部件
*@如果小部件位于页面的可见部分,则返回true
*/
私有布尔IsCrolledinToView(小部件){
if(小部件!=null){
int docViewTop=Window.getScrollTop();
int docViewBottom=docViewTop+Window.getClientHeight();
int elemTop=widget.getAbsoluteTop();
int elemBottom=elemTop+widget.getOffsetHeight();
返回((elemBottom=docViewTop));
}
返回false;
}
/**
* @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;
}