我有以下设置:
一个按钮,上面写着:“在这里上传你的文件”,这只是一个普通的
<input type="file" multiple>
当用户进入 finder 并想要放下文件时,我想显示一个更大的区域供他们放置文件,因为按钮不是很大。这应该仅在用户将鼠标悬停在“更大的输入”上并且持有文件时才可用。
我如何着手实现#2?
我在这个网站上看到了一个风格变化:http://www.dropzonejs.com/当用户“将文件悬停”在上传区域上方时,但无法弄清楚他们是怎么做到的。
最佳答案
将一个函数绑定(bind)到您要监听的事件类型(dragover、dragenter、dragstart、dragend 和 dragleave),并确保此函数至少有一个参数(事件)。然后使用 event.dataTransfer。如果没有关于如何实现它的更多详细信息,则很难提供示例代码。
引用:https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer
仅供引用,您提到的 dropzonejs 使用:
return function(e) {
var efct;
try {
efct = e.dataTransfer.effectAllowed;
} catch (_error) {}
e.dataTransfer.dropEffect = 'move' === efct || 'linkMove' === efct ? 'move' : 'copy';
noPropagation(e);
return _this.emit("dragover", e);
}
以上代码绑定(bind)了“dragover”
关于html - 仅在悬停时显示元素并且用户正在抓取文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29223586/