当我们拖动屏幕的元素顶部或底部时,我试图让页面滚动。当容器在屏幕内时它工作正常,但当容器大于屏幕时无法滚动。为了解决这个问题,我写了这个:
$('.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 :(得分: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)
}
}
});
工作正常