Javascript 为什么上次触发的拖动事件具有负x和y坐标?

Javascript 为什么上次触发的拖动事件具有负x和y坐标?,javascript,jquery,drag,Javascript,Jquery,Drag,JSFiddle: 正如您所看到的,我有一个非常简单的标记,其中有一个图像(最终)将被拖动来改变背景位置。 如果拖动一点,您可以看到触发事件的x,y坐标,正如您所期望的,但是最后触发的事件似乎总是有一个负的x,y坐标对,这似乎取决于“result”JSFIDLE帧的大小 上次事件的坐标是多少?为什么是负数?它们是从“拖动”类型的事件触发的,但只有在最后一次鼠标移动发生时才会触发(拖动不会触发鼠标移动,因为这没有意义) 标记HTML <img src="data:image/gif;base

JSFiddle:

正如您所看到的,我有一个非常简单的标记,其中有一个图像(最终)将被拖动来改变背景位置。 如果拖动一点,您可以看到触发事件的x,y坐标,正如您所期望的,但是最后触发的事件似乎总是有一个负的x,y坐标对,这似乎取决于“result”JSFIDLE帧的大小

上次事件的坐标是多少?为什么是负数?它们是从“拖动”类型的事件触发的,但只有在最后一次鼠标移动发生时才会触发(拖动不会触发鼠标移动,因为这没有意义)

标记HTML

<img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" />
JavaScript

$('img').on('dragstart drag dragstop', function(e){
    console.log(e.originalEvent);
});

我在你的代码中发现了一个错误。”“dragstop”应为“dragend”

请看这把小提琴:

我仍然可以看到负值出现,但它们不是控制台接收到的最后一个值,因此它可能正在解决您的问题

代码如下:

$('img').on('dragstart drag dragend', function(e){
console.log(e.originalEvent);
});
$('img').on('mouseup', function(e){
    e.stopPropagation();
    e.stopImmediatePropagation();
});

虽然有用(我想知道为什么没有拖拽陀螺完成),但我仍然想知道负面的坐标是从哪里来的。如果你在听他拖动事件来移动它,我想你可以一直寻找坐标>0,但这样做似乎有点不对劲。我完全同意,我还不能解释你的脚本是怎么回事。如果我找到了解决方案,我会告诉你的。
$('img').on('dragstart drag dragend', function(e){
console.log(e.originalEvent);
});
$('img').on('mouseup', function(e){
    e.stopPropagation();
    e.stopImmediatePropagation();
});