HTML/CSS-用于拖放的全页面覆盖
HTML/CSS - Full Page Overlay for Drag and Drop
我在创建一个完整的页面覆盖以识别拖放时遇到了一些问题。如果用户将文件从计算机拖到页面上,将其放在任何位置都会触发上传。然而,我很难获得完整的页面覆盖,当文件被删除时,它可以被识别,并且不会阻止页面上的任何悬停元素。这是我当前的代码。
HTML:
<div id = 'dropZone'></div>
CSS:
#dropZone
{
background: gray;
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 100;
opacity: .8;
}
识别跌落的JS:
var dropZone = document.getElementById('dropZone');
dropZone.addEventListener('dragover', handleDragOver, false);
dropZone.addEventListener('drop', handleFileSelect, false);
http://jsfiddle.net/V37cE/
对于这样的覆盖,只有在拖动内容时才会显示,您应该在不同的元素上处理draginter和draglive事件:
<body>
<div>...</div>
<div id="myDropZone" ondragenter="handleDragEnter" style="z-index: 1">
<div id="myDropOverlay" ondragleave="handleDragLeave" onDrop="handleDrop" hidden style="z-index: 2">
Drop your file here
</div>
<div>
content covered by the drop zone overlay while dragging
</div>
</div>
</body>
然后在js:中隐藏/显示覆盖
function handleDragEnter(event) {
showMyDropZoneOverlay();
}
function handleDragLeave(event) {
hideMyDropZoneOverlay();
}
function handleDrop(event) {
...
}
这应该会有所帮助。这里有一个伟大的教程HTML5文件拖动&删除API。这是API的w3.org文档。
我通过将drop zone id添加到标签中解决了这个问题,该标签覆盖了整个页面。
相关文章:
- EaseJS拖放;放下(动画CC)电影剪辑的鼠标坐标
- 为什么HTML5拖放的目标是孩子?(可排序列表)
- HTML/CSS-用于拖放的全页面覆盖
- Rubaxa可与聚合物进行排序/拖放不起作用,具体取决于显示器:
- dblclick事件是在jquery拖放后触发的
- 无法进行拖放以使用本地存储
- 如何使用Java脚本创建提交按钮's的拖放功能
- Chrome原生拖放相对容器并不能正确渲染重影
- 如何在Javascript中创建排序、拖放多级列表
- html5拖放文件-在提交整个表单时上传
- 在jQuery UI中获取ul和li值,拖放即可排序
- html5拖放确定拖动项目的来源
- 我使用什么语言来创建像Webly这样的拖放功能
- HTML5拖放;Drop-使用jQuery处理事件
- 使用jquery拖放图像
- HTML5拖放访问属性
- HTML5拖放-如何删除IE上的默认重影图像
- HTML5拖放新图像并替换Div中的现有图像
- HTML5拖放 - 图像不会覆盖
- Jstree免打扰插件:不能在目标上拖放多个节点而不覆盖之前拖放的节点