gpt4 book ai didi

javascript - HTML/CSS - 用于拖放的整页覆盖

转载 作者:行者123 更新时间:2023-11-28 15:35:47 25 4
gpt4 key购买 nike

我在创建整页叠加层以识别拖放时遇到了一些问题。如果用户将文件从他们的计算机拖到页面上,将其放到任何地方都会触发上传。但是,我无法获得完整的页面覆盖,当文件被删除时它会被识别并且不会阻止页面上的任何悬停元素。这是我当前的代码。

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/

最佳答案

对于这样的覆盖,只有在拖动内容时才显示,你应该在不同的元素上处理 dragenter 和 dragleave 事件:

<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) {
...
}

关于javascript - HTML/CSS - 用于拖放的整页覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12398518/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com