html - 仅在悬停时显示元素并且用户正在抓取文件

标签 html css input-type-file

我有以下设置:

  • 一个按钮,上面写着:“在这里上传你的文件”,这只是一个普通的 <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/

相关文章:

javascript - 使用 dat.GUI 按钮加载文件?

javascript - 如何获取更改后的值?

html - html5 样板中的响应式 Logo (图像替换)

html - 无法使具有动态高度的容器可滚动

html - rgb 颜色的 CSS 约定

html - 由于未设置宽度, float 元素的文本中不会发生换行

html - IE6 float div 无法正确清除

html - CSS 中的堆叠不透明度有多不透明?

javascript - 通过键盘导航聚焦 input[type=file] 时显示浏览器的 ‘select file’ 对话框

angularjs - 输入类型文件的多个实例加载相同的图像