您可以通过使用HTML5拖放功能来执行此操作,您的拖放处理程序将使用dataTransfer.files
将文件从桌面上获取到您的浏览器。一旦你下降,这个事件只是一个MouseEvent
,你可以得到x
和y
在该分区内的位置。
例如:
<html>
<style>
#drop {
border: 2px solid #eee;
text-align: center;
padding: 20px;
}
</style>
<div id="drop">Drop files here</div>
<script>
function handleDrop(e) {
e.stopPropagation();
e.preventDefault();
var files = e.dataTransfer.files;
for (var i = 0, f; f = files[i]; i++) {
console.log('File: ' + f.name + ' dropped in the div in [' + e.x + ', ' + e.y + ']');
}
}
function handleDragOver(e) {
e.stopPropagation();
e.preventDefault();
e.dataTransfer.dropEffect = 'copy';
}
var dropTarget = document.getElementById('drop');
dropTarget.addEventListener('dragover', handleDragOver, false);
dropTarget.addEventListener('drop', handleDrop, false);
</script>
</html>
绝佳。有关在鼠标指针坐标处插入元素的任何信息? – user978122 2012-01-06 19:46:32
@ user978122你基本上使用CSS来定位它们的绝对位置。很多方法,比如父div具有相对定位,而每个你下拉的文件都有绝对定位。或者仅仅是绝对的,并考虑放置div的位置。 – 2012-01-07 04:51:38