【问题标题】:vertical scrolling while dragging the element not works properly拖动元素时垂直滚动无法正常工作
【发布时间】:2013-04-06 12:21:58
【问题描述】:

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

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

【问题讨论】:

    标签: scrolltop vertical-scrolling


    【解决方案1】:

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

    $('.dragable').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)
        }
    }
    

    });

    一切正常

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-11
      • 1970-01-01
      • 1970-01-01
      • 2011-01-28
      相关资源
      最近更新 更多