鼠标滚轮上的Vaadin水平滚动

鼠标滚轮上的Vaadin水平滚动,vaadin,vaadin-flow,vaadin-grid,vaadin14,Vaadin,Vaadin Flow,Vaadin Grid,Vaadin14,我使用了一个Vaadin网格,它有许多列(50),只有一些行(10)。默认情况下,当用户使用本场景中不需要的鼠标滚轮时,它会垂直滚动 在Vaadin中是否有一种内置的方法来实现鼠标滚轮的水平滚动?应该可以使用JS调用。例如,对于V14网格 Grid<String> grid = new Grid<>(); grid.setItems(Arrays.asList("one", "two", "three")); g

我使用了一个Vaadin网格,它有许多列(50),只有一些行(10)。默认情况下,当用户使用本场景中不需要的鼠标滚轮时,它会垂直滚动


在Vaadin中是否有一种内置的方法来实现鼠标滚轮的水平滚动?

应该可以使用JS调用。例如,对于V14网格

Grid<String> grid = new Grid<>();
grid.setItems(Arrays.asList("one", "two", "three"));
grid.removeAllColumns();

for (int i = 0; i < 50; i++) {
    grid.addComponentColumn(Span::new);
}

grid.getElement().executeJs("let grid = $0;"
        + "let scroller = grid.$.scroller;"
        + "scroller.addEventListener('mousewheel', scrollHorizontally, false);"
        + "scroller.addEventListener('DOMMouseScroll', scrollHorizontally, false);"
        + "function scrollHorizontally(e) {"
        + "        e = window.event || e;"
        + "        let delta = Math.max(-1, Math.min(1, (e.wheelDelta || -e.detail)));"
        + "        grid._scrollLeft -= (delta * 40);"
        + "        e.preventDefault();"
        + "    }", grid);
Grid Grid=new Grid();
setItems(Arrays.asList(“一”、“二”、“三”));
grid.removeAllColumns();
对于(int i=0;i<50;i++){
grid.addComponentColumn(Span::new);
}
grid.getElement().executeJs(“让grid=$0
+“让scroller=grid.$.scroller;”
+scroller.addEventListener('mousewheel',水平滚动,false);“
+scroller.addEventListener('DOMMouseScroll',水平滚动,false);“
+“函数(e){”
+“e=window.event | | e;”
+“设delta=Math.max(-1,Math.min(1,(e.wheeldta | |-e.detail));”
+“网格._scrollLeft-=(增量*40);”
+“e.preventDefault();”
+“}”,网格);