垂直滚动两个表同时

时间:2014-02-04 20:25:34

标签: javascript

我有两张桌子必须一起滚动:

$('.vscroll').on('scroll', function (e) {
    divTable1.scrollTop = e.scrollTop;
    divTable2.scrollTop = e.scrollTop;

但是有一点滞后问题。 Table1在Table2之前滚动毫秒。

我知道scrollTop会触发滚动事件,但有没有办法延迟Table1的滚动,直到Table2的scrollTop也被设置?

2 个答案:

答案 0 :(得分:3)

我正在使用div而不是table,但您明白了

$("div").on("scroll",function(){
    $("div:not(this)").scrollTop($(this).scrollTop());
});

DEMO

答案 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.
}