1
HTML5 Drag/Dropを使用すると、要素をドラッグすると、スクリーンショットに示すように、ドロップゾーンがUIから部分的に消えます。画像内の部分的に欠落している部分には赤い境界線があります。下のコードから "hr"タグを削除すると、それは動作し、要素をドラッグするとdivは消えません!これはChromeブラウザでのみ発生します。すべてのコードは以下の通りです。誰がなぜこれが起こっているのか知っていますか?私のテストで要素をドラッグ(ドロップ/ドラッグ)するとdropzone(div)が部分的に消えるのはなぜですか?
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title></title>
<style>
.objects {
display: inline-block;
background-color: #FFF3CC;
border: #DFBC6A 1px solid;
width: 50px;
height: 50px;
margin: 10px;
padding: 8px;
font-size: 18px;
text-align: center;
box-shadow: 2px 2px 2px #999;
cursor: move;
}
#drop_zone {
background-color: #EEE;
border: #f00 1px solid;
width: 280px;
height: 200px;
padding: 8px;
font-size: 18px;
}
</style>
<script>
function _(id){
return document.getElementById(id);
}
var droppedIn = false;
function drag_start(event) {
_('app_status').innerHTML = "Dragging the " +
event.target.getAttribute('id');
event.dataTransfer.dropEffect = "move";
event.dataTransfer.setData("text",
event.target.getAttribute('id'));
}
function drag_enter(event) {
_('app_status').innerHTML = "You are dragging over the
"+event.target.getAttribute('id');
}
function drag_leave(event) {
_('app_status').innerHTML = "You left the
"+event.target.getAttribute('id');
}
function drag_drop(event) {
event.preventDefault(); /* Prevent undesirable default behavior
while dropping */
var elem_id = event.dataTransfer.getData("text");
event.target.appendChild(_(elem_id));
_('app_status').innerHTML = "Dropped "+elem_id+" into the
"+event.target.getAttribute('id');
_(elem_id).removeAttribute("draggable");
_(elem_id).style.cursor = "default";
droppedIn = true;
}
function drag_end(event) {
if(droppedIn == false){
_('app_status').innerHTML = "You let the
"+event.target.getAttribute('id')+" go.";
}
droppedIn = false;
}
function readDropZone(){
alert('dropzone');
for(var i=0; i < _("drop_zone").children.length; i++){
alert(_("drop_zone").children[i].id+" is in the drop zone");
}
/* Run Ajax request to pass any data to your server */
}
</script>
</head>
<body>
<h2 id="app_status">App status...</h2>
<h1>Drop Zone</h1>
<div id="drop_zone" ondragenter="drag_enter(event)"
ondrop="drag_drop(event)" ondragover="return false"
ondragleave="drag_leave(event)"></div>
<div id="object1" class="objects" draggable="true"
ondragstart="drag_start(event)" ondragend="drag_end(event)">object 1</div>
<div id="object2" class="objects" draggable="true"
ondragstart="drag_start(event)" ondragend="drag_end(event)">object 2</div>
<div id="object3" class="objects" draggable="true"
ondragstart="drag_start(event)" ondragend="drag_end(event)">object 3</div>
<hr />
<br />
<button onclick="readDropZone()">Get Object Data</button>
</body>
</html>