拖动元素时垂直滚动无法正常工作

时间:2013-04-06 12:21:59

标签: scrolltop vertical-scrolling

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

$('.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方法,但它不适用于移动设备。请提出任何帮助。感谢

1 个答案:

答案 0 :(得分:0)

删除clearIntervals并使用scrollTop而不使用下面的setInterval

$( 'dragable')。可拖动({

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)
    }
}

});

工作正常