簡體   English   中英

在div上拖放圖像

[英]Drag and drop images on div

我似乎無法將圖像附加到dropzone divul 。我希望所有圖像都水平顯示,但到目前為止,當我將圖像從桌面拖到紅色方塊時,沒有任何反應。

這是我從互聯網上提取的東西。 任何幫助表示贊賞。

    var dropZone = document.getElementById('dropZone');

    dropZone.addEventListener('dragover', function(e) {
        e.stopPropagation();
        e.preventDefault();
        e.dataTransfer.dropEffect = 'copy';
    });


    dropZone.addEventListener('drop', function(e) {
        e.stopPropagation();
        e.preventDefault();
        var files = e.dataTransfer.files; 

        for (var i=0, file; file=files[i]; i++) {
            if (file.type.match(/image.*/)) {
            var reader = new FileReader();

            reader.onload = function(e2) {
            // finished reading file data.
            var img = document.createElement('img');
            img.src= e2.target.result;
            node.append(img);
            document.getElementById('image_bar').appendChild(node);
        }

        reader.readAsDataURL(file); .
    }
}
}); 


<div id="dropZone" style="width: 100px; height: 100px; background-color: red">
    <div><ul id="image_bar"></ul></div>
</div>

首先,你需要刪除。 在線reader.readAsDataURL(file); . reader.readAsDataURL(file); . 然后當您運行代碼時,您將在控制台(Chrome中的F12)中看到“節點未定義”

這段代碼有效:

使用以下內容創建名為myfile.html的文件:

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>Hi</title>
</head>

<body>
<div id="dropZone" style="width: 100px; height: 100px; background-color: red">
    <div><ul id="image_bar"></ul></div>
</div>
  <script>
var dropZone = document.getElementById('dropZone');    
    dropZone.addEventListener('dragover', function(e) {
            e.stopPropagation();
            e.preventDefault();
            e.dataTransfer.dropEffect = 'copy';
        });


        dropZone.addEventListener('drop', function(e) {
            e.stopPropagation();
            e.preventDefault();
            var files = e.dataTransfer.files; 

            for (var i=0, file; file=files[i]; i++) {
                if (file.type.match(/image.*/)) {
                var reader = new FileReader();

                reader.onload = function(e2) {
                // finished reading file data.
                var img = document.createElement('img');
                img.src= e2.target.result;
                document.getElementById('image_bar').appendChild(img);
            }

            reader.readAsDataURL(file);
        }
    }
    }); 

</script>
</body>
</html>

我就是這樣做的。 請閱讀代碼中的注釋

 var url = ""; dropZone.addEventListener("dragenter", dragenter, false); dropZone.addEventListener("dragover", dragover, false); dropZone.addEventListener("drop", drop, false); function dragenter(e) { e.stopPropagation(); e.preventDefault(); } function dragover(e) { e.stopPropagation(); e.preventDefault(); } function drop(e) { e.stopPropagation(); e.preventDefault(); var data = e.dataTransfer; var files = data.files; handleFiles(files); } //a function to handle the dragged files function handleFiles(files) { for (var i = 0; i < files.length; i++) { var file = files[i]; //a regEx to check if the dragged file is an image var isImagen = /^image\\//; //if it's not an image if (!isImagen.test(file.type)) { continue; } //but if it's an image var img = new Image(); img.src = window.URL.createObjectURL(file); img.onload = function() { var w = img.width; var h = img.height; //append the image to the image_bar image_bar.appendChild(img); window.URL.revokeObjectURL(this.src); } } } 
 <div id="dropZone" style="width: 100px; height: 100px; background-color: red"> <div><ul id="image_bar"></ul></div> </div> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM