0

我有一个网格(表格),我想使用拖动移动滚动内容。

到目前为止,我所拥有的是:

var gesturesX = 0;
    var gesturesY = 0;

    var startPosition = 0;
    var velocity = 0;
    var isMouseDown = false;

    var timer;

    function GetVelocity() {
        velocity = startPosition - gesturesY;
    }

    $('.k-grid-content').mousemove(function (e) {
        gesturesX = parseInt(e.pageX, 10);
        gesturesY = parseInt(e.pageY, 10);
        $("#mouse").html(gesturesY);
        if (isMouseDown) {
            $('.k-grid-content').scrollTop(startPosition - gesturesY);
            return false;
        }
    });

    $('.k-grid-content').mousedown(function () {
        startPosition = gesturesY;
        isMouseDown = true;
        timer = window.setTimeout(GetVelocity, 50);
    });

    $('.k-grid-content').mouseup(function () {
        isMouseDown = false;
        return false;
    });

有了这个,我可以滚动拖动。但是我的问题是,例如,如果我滚动到网格的中间,停止,然后返回到从我离开的同一点开始滚动,它重新启动并从表的顶部开始......这可以理解吗?我是说?

我想在同一点上继续……但我不知道该怎么做……

4

1 回答 1

1

这是因为 yourstartPosition总是从元素的顶部开始计算的;您需要在开始时考虑滚动状态。

在您的mousedown活动中:

startPosition = gesturesY + $(this).scrollTop();
于 2013-04-08T14:47:14.863 回答