javascript - HTML5 拖放 offsetX offsetY 跳转

标签 javascript html drag-and-drop

我正在玩 HTML5 拖放并在拖动时跟踪鼠标位置。

OffsetX 和 OffsetY 工作得很好,直到你松开鼠标,偏移量在最后一次调度的拖动事件中跳转到负数

这是 html:

<div id="dragger"></div>
<div id="console"></div>

这是CSS:

#dragger{
    -webkit-user-drag: element;
    width: 100px;
    height: 100px;
    background: hsla(200, 100%, 50%, 0.4);
}​

和js

$('#dragger').bind('drag', function (e) {
    $('#console').html(e.originalEvent.offsetX);
})​

您也可以在 http://jsfiddle.net/Eu2mz/5/ 进行测试

另外,我现在只是想让它在 webkit 中工作。

最佳答案

我不知道为什么,但是当拖动到可拖动对象之外或拖放到可拖动对象之外时,将更改 offsetXoffsetYclientXclientY 等一些难以理解的数字的属性。

解决方法是在文档放置和拖动事件上preventDefault

document.addEventListener("drag", function( event ) {
  var element = document.getElementById('console');
  element.textContent = event.clientX;
}, false);

document.addEventListener("dragover", function( event ) {
    event.preventDefault();
}, false);

document.addEventListener("drop", function( event ) {
    event.preventDefault();
}, false);
#dragger{
    width: 100px;
    height: 100px;
    background: hsla(200, 100%, 50%, 0.4);
}
<div draggable="true" id="dragger" ondragstart="event.dataTransfer.setData('text/plain',null)"></div>
<div id="console"></div>

关于javascript - HTML5 拖放 offsetX offsetY 跳转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12128216/

相关文章:

iphone - iOS 中的基本拖放

iphone - 在有限的边界内拖动 View 而不超出该边界

javascript - 如何从 NodeJS 中的文本文件中提取(读取 + 删除)?

javascript - 如何诊断此错误?

javascript - 侧边栏在点击时不起作用

javascript - 环境变量更改project.json中的应用程序名称并设置运行时变量?

python - qtextbrowser 右对齐或居中对齐

Php - 获取 php 脚本后的路径

javascript - 如何将 JavaScript 值传递给 JSF EL 和辅助 bean?

Angular Material 多对象拖放与调整大小问题