我有一个网格(表格),我想使用拖动动作滚动内容。
到目前为止我所拥有的是:
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;
});
有了这个,我可以滚动拖动。但我的问题是,例如,如果我滚动到网格的中间,停止,并在返回滚动开始在我离开的同一点,它重新开始,它从表的顶部开始...是可以理解的是什么我的意思是?
我想继续在同一点......但我没有看到我应该怎么做......
答案 0 :(得分:1)
这是因为您的startPosition
总是从元素顶部计算出来;你需要在开始时考虑滚动状态。
在mousedown
事件中:
startPosition = gesturesY + $(this).scrollTop();