我有两张桌子必须一起滚动:
$('.vscroll').on('scroll', function (e) {
divTable1.scrollTop = e.scrollTop;
divTable2.scrollTop = e.scrollTop;
但是有一点滞后问题。 Table1在Table2之前滚动毫秒。
我知道scrollTop会触发滚动事件,但有没有办法延迟Table1的滚动,直到Table2的scrollTop也被设置?
答案 0 :(得分:3)
我正在使用div
而不是table
,但您明白了
$("div").on("scroll",function(){
$("div:not(this)").scrollTop($(this).scrollTop());
});
答案 1 :(得分:3)
尝试使用setTimeout触发滚动,然后返回false以取消原始滚动条:
var ignoreEvent = false;
$(".vscroll").on('scroll', function (e) {
if (!ignoreEvent) {
setTimeout(function() {
ignoreEvent = true;
table1.scrollTop = e.scrollTop;
table2.scrolLTop = e.scrollTop;
}, 100);
}
ignoreEvent = false;
return false; // cancels the original scroll event.
}