我正在尝试创建可重新排序的项目列表。我已经在移动设备上进行了设置,该项目在长时间搁置后开始移动,然后拖动以重新放置它。拖动移动时禁用滚动
当只有几个项目都存在它工作正常,但一旦足够的出现,让div
滚动(只含ul
滚动,而不是整个页面的div
),我不能再重新定位的项目,如拖导致滚动。
我曾尝试在touchmove
上使用.preventDefault()
,但似乎没有效果。
基本上,我有这样的:
$(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以编程方式滚动以及它需要执行的操作。
你可以尝试操纵溢出样式属性 – Sombriks
@Sombriks我想这一点,但似乎完全停止到div元素之外的任何访问。我需要它滚动时,持有的项目接近顶部/底部(我可以处理程序),但溢出停止。编辑提出的原始问题。 – NukesForKids
在这种情况下,我假设mousemove事件正在被滚动事件“吃掉”。如果是这样,也许一个下降事件可能会有所帮助:https://developer.mozilla.org/en-US/docs/Web/Events/drop – Sombriks