使用keytable插件时自动滚动

时间:2013-07-23 23:32:18

标签: jquery scroll

我在普通的html表中使用了Allan Jardine的KeyTable插件。这是一张大桌子,所以它水平和垂直滚动。我现在面临的问题是,当聚焦单元格不在视线范围内时,它不会自动滚动(因为它具有.focus类,所以它知道当前单元格)。

如何在使用键盘时自动滚动?

感谢。

2 个答案:

答案 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检查了它,它工作正常。