javascript - 使多个元素在放置时可见
问题描述
我有一个代码,其中三个带有 id 的图像 src ,drag1
每个都可以拖放到..drag2
drag3
div1
我的问题是,在删除第二个和第三个图像时,它在 #div1 中不可见
如何使第二张和第三张图像在放置时可见?
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));
}
#div1 {
width: 350px;
height: 70px;
padding: 10px;
border: 1px solid #aaaaaa;
}
<div id="div1" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
<br>
<img id="drag1" src="https://picsum.photos/200" draggable="true" ondragstart="drag(event)" width="336" height="69">
<img id="drag2" src="https://picsum.photos/200/300?image=0" draggable="true" ondragstart="drag(event)" width="336" height="69">
<img id="drag3" src="https://picsum.photos/200/300/?gravity=east" draggable="true" ondragstart="drag(event)" width="336" height="69">
解决方案
实际上,您的实际代码没有问题,并且与 3 的行为方式相同images
。
问题是您div
只有70px
第height
一个图像可见,而后两个元素在其中div
但未显示在屏幕上,您可以通过更改 divheight
或使其随内容拉伸来解决此问题。
演示:
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));
}
#div1 {
width: 350px;
height: 370px;
padding: 10px;
border: 1px solid #aaaaaa;
}
<div id="div1" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
<br>
<img id="drag1" src="https://picsum.photos/200" draggable="true" ondragstart="drag(event)" width="336" height="69">
<img id="drag2" src="https://picsum.photos/200/300?image=0" draggable="true" ondragstart="drag(event)" width="336" height="69">
<img id="drag3" src="https://picsum.photos/200/300/?gravity=east" draggable="true" ondragstart="drag(event)" width="336" height="69">
推荐阅读
- javascript - 如何将新值推送到现有键?Javascript
- javascript - forEach 循环后数组分配的奇怪行为
- numpy - 使用 OpenCL 优化而不是多处理池映射
- vb.net - VB.NET ODBC 连接到 DB2
- git - git commitizen 安装后不起作用
- git - 如何关闭 Git 警告:无法打开目录:权限被拒绝?
- django - Ajax 添加新事件后,FullCalendar 事件不刷新
- debugging - 我们如何限制 GDB 仅调试特定源(例如 yacc/lex)以获取 step + next 指令?
- r - 在data.table R中以编程方式将不同的函数应用于不同的列
- python - 函数式编程,如何从单个迭代器一次有效地构建多个列表?