- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在玩完整形式的拖放(所以没有即时上传)。我虽然有一小部分会在将鼠标悬停在文件上时突出显示某个字段集。输入 dragover
和 dragenter
事件(和 dragleave
等)。
事实证明它不是这么小的一部分。 fiddle :http://jsfiddle.net/rudiedirkx/epp74/
试一试:拖过一个字段集并四处移动一下。第一个 over
触发 fieldset 的 dragenter
事件(fieldset 为黄色)。之后的移动(在同一个字段集中)触发了 dragenter
和 dragleave
(字段集不再是黄色),这很糟糕。
这就是为什么我想在很久以前制作 IE 为 mouseover
和 mouseout
制作的东西:mouseenter
和 mouseleave
(它们只触发一次)。对于拖动事件,同样适用:它们应该以完全相同的方式只触发一次。 JS 库通过使用 Event.fromElement
和 Event.toElement
(并将它们与事件所有者元素进行比较)来欺骗这些 IE 事件。 (有关详细信息,请参阅 jQuery 或 Mootools 来源。)
要使拖动事件相同,我需要相同的 fromElement
和 toElement
。你可以在 Fiddle 中看到,我试过了,但我找不到它们。
有人知道他们在哪里吗?为什么它们不可用?
我主要使用 Chrome,它在 dragenter
事件中没有 fromElement
,但是有 toElement
在 dragleave
事件中。在 Firefox 中情况稍差(但更合乎逻辑):两者都是空的。
非常欢迎任何想法。
编辑
在a little more debugging之后我发现 dragleave
中的 Chrome 的 toElement
并不总是正确的。它永远不会比this
“更大”,但有时应该是:当我将字段集 (this
) 保留为其父表单 (toElement
) 时.当我这样做时,this
和 toElement
都是字段集(这是不正确的,对吧?)。
编辑 解决方案:
我最终得到了这样的结果:http://jsfiddle.net/rudiedirkx/Lwd3md71/它忽略事件中的元素,并使用事件坐标来查找鼠标下的元素。为了使其在每个动画帧最多触发一次,它使用 requestAnimationframe,这会导致 31-59 fps。
最佳答案
Firefox 提供了 relatedTarget
事件属性,但 Chrome 和 Safari 没有。可悲的是,这个问题已经开放了几年 Chrome bug还有这个Webkit bug .
编辑:该问题已在 Chrome 中修复。
关于javascript - dragenter/dragover 事件中没有 Event.fromElement 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8547733/
我正在编写一个 WPF 应用程序,在应用程序的控件中支持拖放,并且还在我的桌面文件和我的应用程序之间拖放。我用装饰器来改变我的鼠标光标。 控件之间的内部拖放操作没有问题。问题是桌面文件和我的应用程序之
我想在触发 DragEnter 事件时更改框架元素的背景,并在触发 DragLeave 事件时恢复其背景。此外,我希望以一种风格应用它。 这是我目前拥有的:
我试图在将对象拖到 div 上时更改 div 的颜色。 我希望它从红色变为绿色。 目前我有我的script.js: function dragEnter() { $('.dropbin').b
https://jsfiddle.net/7scfk81L/ 我有这样的文档结构 然后我将 dragEnter & dragLeave 监听器添加到容器 但是当我拖动到文件中时,它会触发容器
我正在用 JavaScript 和 HTML 开发一个交互式文件 uploader ,我需要在其中访问当前拖动的文件文件名(触发 dragenter 事件的文件名)。 但是有一个问题,事件 dataT
我对此感到困惑。我尝试在 DataGridView 上实现拖放操作。由于没有看到任何事件被触发,我尝试了一个带有文本框的简单表单。 我希望能够从 Windows 资源管理器中拖动文件或文件夹。 我遗漏
我正在为此寻找跨浏览器解决方案。事先我告诉你我不想知道是否只是一个文件,因为我找到了解决方案。我想知道文件基本上是音频、图像还是视频。在 Chrome 中,当您触发 dragenter 事件时,您可以
我正在尝试实现与 imgur.com 相同的效果(将文件从桌面拖到 imgur.com,您会看到一个很酷的叠加层)。由于这篇文章,已经有了一个可行的解决方案:Event propagation, ov
我在 Canvas 上有一个拖放操作,当一个对象被拖入和拖出它时,它应该做一些事情。我的问题是 DragEnter/DragLeave 事件在鼠标将对象移动到它上面时不断触发,而不仅仅是在进入/退出时
我已在包含一些子项的对象上绑定(bind)了 dragenter 事件。 $(document).on('dragenter', '#container', function(e) { conso
我正在尝试一些拖放功能,无法辨别 Give Feedback 和 Drag Enter 事件之间的区别。 在 Drag Enter 上,我们检查它进入的元素是否可以接受将要拖放的对象并向用户显示某种预
我有以下代码,我试图在其中实现拖放功能: public Location_Alert() { InitializeComponent(); #region Fo
我正在关注 this guide用于 jQuery 可拖动项。 我唯一想念的是 dragenter 和 dragleave 事件,用于处理临时元素的 CSS。当可拖动元素在其上移动时,它只为可放置元素
是否可以通过 allowDrop=False 在窗口上获得 dragEnter 事件?我希望用户将文件放在一个小框中,当他将某些内容拖到应用程序中时该小框会显示。 这可能吗?如何实现? BR 最佳答案
为什么我们实际上需要处理放置目的地的 DragEnter 事件? 它在目的地的作用是什么? 源头 public partial class ToolBoxForm : System.Windows.F
我目前正在编写上传脚本,当然它具有拖放功能。 但是 当我将一个文件拖到我的元素上时,我试图让它工作,它添加了 drag-over 类,但是因为我的元素有子元素,它不断触发,因为它进入和离开元素。 我想
我在我的 Angular 应用程序中使用原生 HTML 拖放,我发现了这个事件闪烁的问题 This答案并不能解决我的问题,因为他们正在手动移动元素。我将其保留在 native 实现中。 我的简化代码:
当拖入时当涉及到 时,边框和文本的颜色从灰色完美变为黑色它变回灰色。 CSS: .upload-cont{ cursor:pointer; margin-left:130px;
我想在我的 PicureBox 中使用 DragDrop 但 DragDrop() 和 DragEnter() 方法永远不会打电话。 我创建了方法 MouseMove 并且在这个方法中我调用了 DoD
我正在尝试使用 HTML5 可拖动 API(虽然我知道它 has its problems )。到目前为止,我遇到的唯一问题是我想不出一种方法来确定在 dragover 或 dragenter 事件触
我是一名优秀的程序员,十分优秀!