在移动设备上拖动时禁用滚动

时间:2017-06-03 03:28:02

标签: javascript html

我正在尝试创建可以重新排序的项目列表。我已将其设置在移动设备上,其中项目在长按后开始移动,然后拖动以重新定位。

当只有少数几个项目存在时,它可以正常工作,但是一旦有足够的内容似乎允许div滚动(只有包含div卷轴的ul,而不是整个页面) ,我无法再重新定位项目,因为拖动会导致滚动。

我尝试在.preventDefault()上使用touchmove,但似乎没有效果。

基本上,我有这个:

$(document).on('touchmove mousemove', e => {
  // check to make sure we're holding something
  // if not, just return

  e.preventDefault()
  // this stops the text from being highlighted,
  // but does not stop scrolling

  // report the mouse/touch position to the actual move function.
})

大多数解决方案都说使用preventDefault()会阻止它,但似乎并非如此。

我可以在这做什么?

编辑:我尝试过操作overflow属性,但是这也阻止了div以编程方式滚动,这需要它做。

1 个答案:

答案 0 :(得分:0)

尝试阻止滚动:

$('div').on('scroll', function(e) {e.preventDefault()});