Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
确定小部件是否显示在GWT的视口中_Gwt_Widget_Viewport - Fatal编程技术网

确定小部件是否显示在GWT的视口中

确定小部件是否显示在GWT的视口中,gwt,widget,viewport,Gwt,Widget,Viewport,是否可以确定特定的小部件是否显示在视口中 一旦我的listwidget中的最后一个小部件显示给用户,我想开始加载更多数据。我想我可以处理滚动事件,并为每个事件检查是否显示最后一个小部件,以及触发rpc以获取更多数据 BR从中查看ShowMorePagerPanel 您可以使用小部件的getElement()的getOffsetTop()和滚动元素的getScrollTop()(相当于getVerticalScrollPosition()用于ScrollPanel)来计算小部件当前是否在视图中(注

是否可以确定特定的小部件是否显示在视口中

一旦我的listwidget中的最后一个小部件显示给用户,我想开始加载更多数据。我想我可以处理滚动事件,并为每个事件检查是否显示最后一个小部件,以及触发rpc以获取更多数据


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;
}