- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我注册了 HTML5 DnD 事件,以便从桌面获取拖放文件。我看到的问题是我总是在 drop 事件之前得到 dragleave 事件。在规范中没有提到这样的事情 - 如果您使用 dragleave 作为没有发生下降的指示器,那么它会弄乱逻辑。
var dropbox = document.getElementById("dropzone");
dropbox.addEventListener("dragenter", dragEnter, false);
dropbox.addEventListener("dragleave", dragLeave, false);
dropbox.addEventListener("dragover", dragOver, false);
dropbox.addEventListener("drop", drop, false);
function dragEnter(e){
console.log("dragEnter ",e);
dropbox.style.backgroundColor = "red";
e.stopPropagation();
e.preventDefault();
}
function dragLeave(e){
console.log("dragleave");
dropbox.style.backgroundColor = "white";
e.stopPropagation();
e.preventDefault();
}
function dragOver(e){
console.log("dragOver ",e);
e.stopPropagation();
e.preventDefault();
}
function drop(e){
console.log("drop ",e);
var files = e.dataTransfer.files;
var count = files.length;
e.stopPropagation();
e.preventDefault();
}
这是设计工作还是我遗漏了什么?
最佳答案
这似乎是一个很好的引用:http://www.useragentman.com/blog/2010/01/10/cross-browser-html5-drag-and-drop/
基本上,dragLeave
并不表示没有发生掉落。它是一个可拖动对象被拖出另一个对象的指示符。
你不需要它。
[编辑:基本上,dragleave
正在触发,因为您拖动的项目来自您的桌面。 object
在你放下它之前它所在的基本上就是你的桌面。如果您将桌面上的任何文件拖到任何 droptarget 上,它将触发 dragleave
以指示它不再“位于”前一个对象(您的桌面)中,现在位于新对象中(“dropzone” ”)。如果您有多个放置区,每次将其拖过,然后从其中一个拖出,dragleave
就会触发。您应该只使用 drop
事件来判断是否发生了掉落。]
关于javascript - 在 html5 中 dragleave 后下降,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4759387/
我有一个 dragenter 的工作示例和 dragleave突出显示应放置文件的区域的事件。本例 works correctly . 现在如果我只添加一个 在我的 dragenter 区域内,hig
概述 我有以下 HTML 结构,并附上了 dragenter和 dragleave 的事件元素。 this is some text
我正在编写一个 WPF 应用程序,在应用程序的控件中支持拖放,并且还在我的桌面文件和我的应用程序之间拖放。我用装饰器来改变我的鼠标光标。 控件之间的内部拖放操作没有问题。问题是桌面文件和我的应用程序之
我在使用“dragstart”、“dragleave”事件的浏览器上处理拖动事件。当仅添加宽度属性时,Internet Explorer 11 中的行为非常不同。一旦为元素指定了宽度属性,dragLe
请在 - http://jsfiddle.net/fSB32/2/ 查看演示 我的意图是在 document 上触发拖动事件时出现叠加层。因此,允许用户将图像拖放到文档的任何位置。当他这样做时,会出现
我正在尝试跟踪整个屏幕的 dragenter/leave,到目前为止,这在 Chrome/Safari 中运行良好,由来自 https://stackoverflow.com/a/10310815/6
我遇到的问题是当悬停该元素的子元素时会触发该元素的 dragleave 事件。另外,dragenter 在再次悬停父元素时不会触发。 我做了一个简化的 fiddle :http://jsfiddle.
我在 Canvas 上有一个拖放操作,当一个对象被拖入和拖出它时,它应该做一些事情。我的问题是 DragEnter/DragLeave 事件在鼠标将对象移动到它上面时不断触发,而不仅仅是在进入/退出时
从父控件拖动到子控件时,我收到 DragLeave 事件。我只希望在超出控件范围时获得此事件。我该如何实现? 请引用这个简单的示例应用程序。 Hilight and Dra
我之所以注意到这一点,是因为我错误地尝试将 DragEventHandler 附加到 DragLeave 事件。我惊讶地发现 DragLeave Event 就像一个通用的 EventHandler。
自定义 UserControl ChartControlShelf 包含一个 TableLayoutPanel 和 3 个子控件,所有类型都是 Panel。 children 没有 EventHand
在拖放中,dragLeave 事件有时会在 drop 事件之前触发。 这会导致问题,因为目标是在 dragEnter 中使用 dragLeave 获取监听器并删除监听器。如果 dragLeave 在
HTML 拖放 API 定义了两个非常相似的事件,dragleave 和 dragexit,它们与 dragenter 一起用于帮助跟踪当前下降目标。 快速搜索没有找到关于这两个事件的任何当前和清晰的
我正在尝试创建一个元素,用户可以在拖动元素时将鼠标悬停在其上以缓慢向下滚动页面。这是支持我的拖放编辑器所必需的。 我正在检测用户是否将鼠标悬停在 anchor 上并进行拖动,如果是,我会启动一个 $i
我注册了 HTML5 DnD 事件,以便从桌面获取拖放文件。我看到的问题是我总是在 drop 事件之前得到 dragleave 事件。在规范中没有提到这样的事情 - 如果您使用 dragleave 作
我在我的 Angular 应用程序中使用原生 HTML 拖放,我发现了这个事件闪烁的问题 This答案并不能解决我的问题,因为他们正在手动移动元素。我将其保留在 native 实现中。 我的简化代码:
当拖入时当涉及到 时,边框和文本的颜色从灰色完美变为黑色它变回灰色。 CSS: .upload-cont{ cursor:pointer; margin-left:130px;
指针事件:无;已经实现了,在调试中, bool 值在“拖动”和“拖动OL”的true和false之间快速切换 HTML 结构
我正在通过引用此 link 对 HTML5 拖放概念进行研究工作.目前,我遇到了 dragenter 事件的问题,该事件在 dragleave 之前第二次触发(针对子元素)。因此,在某些情况下,当 d
我在单页应用程序中使用 html5 dragevents。 目前,我正在监听 dragleave 和 dragenter 事件以在元素上设置适当的类。 但是,当两个有效的目标元素(A 和 B)彼此相邻
我是一名优秀的程序员,十分优秀!