0

当我们将元素拖动到屏幕的顶部或底部时,我试图让页面滚动。当容器在屏幕内时它工作正常,但当容器大于屏幕时无法滚动。为了解决这个问题,我写了这个:

$('.dragable').draggable({

    zIndex:100,
    revert: "invalid",
    helper: "clone",
    scroll: true,
    drag: function(e)
    {
        if(e.clientY <= distance)//top
        {
            isMoving = true;
            clearInetervals();            
            intTopHandler= setInterval(function(){
                $(document).scrollTop(e.clientY - step)
            },timer);
        }
        if(e.clientY >= ($(window).height() - distance))//bottom
        {
            isMoving = true;
            clearInetervals();            
            intBottomHandler= setInterval(function(){
                $(document).scrollTop(e.clientY + step)
            },timer);
        }
    }
});

释放可拖动元素后,屏幕将保持在同一位置,除非我们再次移动可拖动元素。我尝试过 scrollBy 而不是 scrollTop 方法,但它不适用于移动设备。请提出任何帮助。谢谢

4

1 回答 1

0

删除 clearIntervals 并使用 scrollTop 而没有下面给出的 setInterval

$('.draggable').draggable({

zIndex:100,
revert: "invalid",
helper: "clone",
scroll: true,
drag: function(e)
{
    if(e.clientY <= distance)//top
    {
        $(document).scrollTop(e.clientY - step)
    }
    if(e.clientY >= ($(window).height() - distance))//bottom
    {
        $(document).scrollTop(e.clientY + step)
    }
}

});

它工作正常

于 2013-04-10T02:43:44.960 回答