使用GWT/Java/JavaScript滚动到可滚动对象的特定位置

Scroll to specific position of scrollable object using GWT/Java/JavaScript

本文关键字:滚动 定位 位置 对象 GWT Java JavaScript 使用      更新时间:2023-09-26

我有一个特定的页面,上面有几个CellTables。

它们非常大,我对它们上的触控板水平滚动有问题(看起来,GWT上没有)。这就是为什么我选择为它们使用滚动处理程序:

MouseWheelHandler handler = new MouseWheelHandler() {
      @Override
      public void onMouseWheel(MouseWheelEvent event) {
            event.preventDefault();
            int velocityX = 0;
            int velocityY = 0;
            int positionx=0;
            int positiony=0;
            positionx=event.getX();
            positiony=event.getY();
            velocityX = getMouseWheelVelocityX(event.getNativeEvent()) / 10;
            velocityY = getMouseWheelVelocityY(event.getNativeEvent()) / 10;
            positionx=positionx+velocityX;
            positiony=positiony+velocityY;
      }
  };

我得到了在X和Y轴上滚动的速度和滚动的新位置。我需要做的最后一件事是滚动到特定的位置(例如positionX)或滚动特定数量的像素(例如velocityX)。但我不能使用javascript scrollByscrollTo,因为它们应用于整个窗口,而不是特定对象(我的CellTables)。

如何滚动到对象的特定像素位置?

您有两个选项:

  1. 将CellTable小部件放入ScrollPanel中。ScrollPanel具有您需要的所有方法(如setHorizontalScrollPosition()等)

  2. 使用DataGrid小部件而不是CellTable。DataGrid小部件有一个固定的页眉和页脚(如果需要)以及一个可滚动的内部内容。