2013-04-06 132 views
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方法,但它不适用于移动设备。请建议任何帮助。感谢

回答

0

删除clearIntervals并使用scrollTop的无的setInterval下面

$给出可拖动({

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

})( 'dragable。');

它工作正常