我在普通的html表中使用了Allan Jardine的KeyTable插件。这是一张大桌子,所以它水平和垂直滚动。我现在面临的问题是,当聚焦单元格不在视线范围内时,它不会自动滚动(因为它具有.focus类,所以它知道当前单元格)。
如何在使用键盘时自动滚动?
感谢。
答案 0 :(得分:1)
我个人为jQuery使用了很好的scrollintoview插件:https://github.com/litera/jquery-scrollintoview。
我自己的代码很好,但仍然不完美,就像这样:
var anim_element = $();
var keys = new KeyTable( {
"table": t,
focus: false,
});
keys.event.focus( null, null, function(cell, posx, posy) {
/* handler for focus events on all cells ... */
anim_element.stop();
var row = $(cell).parents("tr").first();
anim_element = row.stop().scrollintoview({ duration: 50, direction: 'y'});
});
请注意,您必须在下一个焦点事件开始时停止动画,但要这样做,您必须将前一个动画元素存储在某处。这是我的代码的一部分,仍然有点粗糙。
希望它有所帮助。
答案 1 :(得分:0)
尝试在DataTable选项中使用scrollX和scrollY
scrollX: true, // For Horizontal Scrolling
scrollY: "600px" // For Verticle Scrolling (define the pixels when scrolling should Start)
参考:
https://datatables.net/reference/option/scrollX
https://datatables.net/reference/option/scrollY
它对我有用。我还使用KeyTable检查了它,它工作正常。