要在一次操作中在一行中插入多个通过拖放上传的图像,您可以采用以下方法:
<div id="dropArea">
<p>拖放图像到这里</p>
</div>
<div id="imageContainer"></div>
document.addEventListener('DOMContentLoaded', function() {
const dropArea = document.getElementById('dropArea');
const imageContainer = document.getElementById('imageContainer');
['dragenter', 'dragover', 'dragleave', 'drop'].forEach(eventName => {
dropArea.addEventListener(eventName, preventDefaults, false);
});
function preventDefaults(e) {
e.preventDefault();
e.stopPropagation();
}
['dragenter', 'dragover'].forEach(eventName => {
dropArea.addEventListener(eventName, highlight, false);
});
['dragleave', 'drop'].forEach(eventName => {
dropArea.addEventListener(eventName, unhighlight, false);
});
function highlight(e) {
dropArea.style.backgroundColor = '#fdd';
}
function unhighlight(e) {
dropArea.style.backgroundColor = '';
}
dropArea.addEventListener('drop', handleDrop, false);
function handleDrop(e) {
let dt = e.dataTransfer;
let files = dt.files;
handleFiles(files);
}
function handleFiles(files) {
([...files]).forEach(uploadFile);
}
function uploadFile(file) {
if (file.type.startsWith('image/')) {
let reader = new FileReader();
reader.readAsDataURL(file);
reader.onloadend = function() {
let img = document.createElement('img');
img.src = reader.result;
img.style.width = '100px'; // 设置图像宽度
imageContainer.appendChild(img);
}
}
}
});
通过上述方法,您可以实现一次在一行中插入多个通过拖放上传的图像,并处理可能遇到的常见问题。
领取专属 10元无门槛券
手把手带您无忧上云