【发布时间】:2021-11-03 09:27:33
【问题描述】:
我在 Vaadin 中设置了按键侦听器,以使用箭头键执行特定任务。 因为这个我不能使用箭头键来滚动页面,所以我将 keylisteners 设置为 ctrl+arrow 来完成这个功能。 现在我目前使用 JS 函数调用来进行滚动:
window.Scroll = {
scroll: function(amount, idOfWrapper){
var element = document.getElementById("container-of-" + idOfWrapper);
element.scrollBy({top:amount, behavior: 'smooth'});
}
}
我遇到的问题是,由于平滑的滚动行为(我需要这样做),这并不能让我连续滚动页面。我怎样才能做到这一点?
Java 代码:
ShortcutEventListener listener = event -> {
...
} else if(event.matches(Key.ARROW_DOWN, KeyModifier.CONTROL)) {
UI.getCurrent().getPage().executeJs("Scroll.scroll($0, $1)", scrollAmount,
idOfWrapper);
} else if(event.matches(Key.ARROW_UP, KeyModifier.CONTROL)) {
UI.getCurrent().getPage().executeJs("Scroll.scroll($0, $1)", scrollAmount, idOfWrapper);
}
};
...
UI.getCurrent().addShortcutListener(listener, Key.ARROW_DOWN, KeyModifier.CONTROL);
UI.getCurrent().addShortcutListener(listener, Key.ARROW_UP, KeyModifier.CONTROL);
【问题讨论】:
标签: javascript scroll vaadin smooth-scrolling