一般来说,我建议使用类似的库
Interact.js
,因此,您可以执行以下操作而不是您所做的操作:
interact('.draggable')
.draggable({
// enable inertial throwing
inertia: true,
// keep the element within the area of it's parent
restrict: {
restriction: "parent",
endOnly: true,
elementRect: { top: 0, left: 0, bottom: 1, right: 1 }
},
// enable autoScroll
autoScroll: true
});
其中draggable是要移动的对象的类名。另外,我想指出,在您的代码中,您将事件侦听器附加到文档,如下所示
document.addEventListener('touchmove', this.onMouseMove);
这会将事件侦听器添加到文档中,而不是任何特定对象,因此它不会真正帮助您移动单个元素。如果要将事件附加到特定元素,则需要像这样引用该元素:
let el = document.getElementById('my-el');
el.addEventListener('touchmove', onMouseMove);