我目前有一个将图像传输到三个 div 的拖放功能,我遇到的问题是 div 尺寸如何调整到插入到它的图像,所以所有图像只能放在一个盒子里..
还有可能只附加每个图像的 alt 以便每个人都适合吗?
<!DOCTYPE HTML>
<html>
<head>
<style>
div {
width: 350px;
height: 70px;
padding: 10px;
border: 1px solid #aaaaaa;
}
</style>
<script>
function allowDrop(ev) {
ev.preventDefault();
}
function drag(ev) {
ev.dataTransfer.setData("text", ev.target.id);
}
function drop(ev) {
ev.preventDefault();
var data = ev.dataTransfer.getData("text");
ev.target.appendChild(document.getElementById(data));
}
</script>
</head>
<body>
<div id="div1" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
<div id="div2" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
<div id="div3" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
<br>
<img id="drag1" src="img_logo.gif" draggable="true" ondragstart="drag(event)" width="336" height="69">
<img id="drag2" src="img_logo.gif" draggable="true" ondragstart="drag(event)" width="336" height="69">
<img id="drag3" src="img_logo.gif" draggable="true" ondragstart="drag(event)" width="336" height="69">
</body>
</html>
最佳答案
您可以在使用 javascript 删除图像后设置 div 尺寸,只需从 css 中删除填充,以便 div 适合图像,见下文
function allowDrop(ev) {
ev.preventDefault();
}
function drag(ev) {
//console.log(ev.target.id)
ev.dataTransfer.setData("text", ev.target.id);
}
function drop(ev) {
ev.preventDefault();
var data = ev.dataTransfer.getData("text");
var img = document.getElementById(data);
ev.target.appendChild(img);
//set the div width & height aacording to the image width
ev.target.style.width = parseInt(img.width) + 'px';
ev.target.style.height = parseInt(img.height) + 'px';
}
div {
border: 1px solid #aaaaaa;
width: 350px;
height: 70px;
}
<div id="div1" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
<br/>
<div id="div2" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
<br/>
<div id="div3" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
<br>
<img id="drag1" src="https://images.unsplash.com/photo-1507146426996-ef05306b995a?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=336&q=69" draggable="true" ondragstart="drag(event)">
<img id="drag2" src="https://images.pexels.com/photos/33053/dog-young-dog-small-dog-maltese.jpg?auto=compress&cs=tinysrgb&dpr=2&w=336&h=69" draggable="true" ondragstart="drag(event)">
<img id="drag3" src="https://images.pexels.com/photos/257540/pexels-photo-257540.jpeg?auto=compress&cs=tinysrgb&h=69&w=336" draggable="true" ondragstart="drag(event)">
关于javascript - HTML5拖放传输时调整div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54563347/