我正在制作某种sprintboard,我想根据盒子所在的容器(toDo、inProgress、Done)更改盒子的背景色.我想不出一个解决方案,我try 了一些,但失败了,我找到的其他资源也没有那么有用.
let emptyCell = "cell4";
function boxOver(event) {
event.preventDefault();
}
function boxDrag(event, boxNumber) {
event.dataTransfer.setData("text", boxNumber.toString());
}
function boxDrop(event, cellNumber) {
event.preventDefault();
let boxNumber = event.dataTransfer.getData("text");
let draggedBox = document.getElementById("box" + boxNumber);
let targetCell = document.getElementById("cell" + cellNumber);
if (targetCell.innerHTML.trim() === "") {
emptyCell = draggedBox.parentNode.id;
targetCell.appendChild(draggedBox);
}
}
.container {
width: 1000px;
margin: 0 auto;
display: flex;
}
#div1 {
background-color: gray;
float: left;
height: 750px;
width: 300px;
text-align: center;
position: relative;
}
#div2 {
background-color: gray;
float: left;
margin-left: 20px;
height: 750px;
width: 300px;
text-align: center;
}
#div3 {
background-color: gray;
float: right;
margin-left: 20px;
height: 750px;
width: 300px;
text-align: center;
}
.text1 {
background-color: black;
color: white;
text-align: center;
font-size: 40px;
width: 250px;
height: 50px;
margin: 0 auto;
position: relative;
}
.text2 {
background-color: orange;
color: white;
text-align: center;
font-size: 40px;
width: 250px;
height: 50px;
margin: 0 auto;
position: relative;
}
.text3 {
background-color: green;
color: white;
text-align: center;
font-size: 40px;
width: 250px;
height: 50px;
margin: 0 auto;
position: relative;
}
#box1 {
background-color: rgb(80, 80, 80);
color: white;
text-align: center;
font-size: 40px;
width: 200px;
height: 100px;
margin: 0 auto;
position: relative;
border: 5px solid white;
border-style: dashed;
}
#box2 {
background-color: rgb(80, 80, 80);
color: white;
text-align: center;
font-size: 40px;
width: 200px;
height: 100px;
margin: 0 auto;
position: relative;
border: 5px solid white;
border-style: dashed;
}
#box3 {
background-color: rgb(80, 80, 80);
color: white;
text-align: center;
font-size: 40px;
width: 200px;
height: 100px;
margin: 0 auto;
position: relative;
border: 5px solid white;
border-style: dashed;
}
#box4 {
background-color: rgb(80, 80, 80);
color: white;
text-align: center;
font-size: 40px;
width: 200px;
height: 100px;
margin: 0 auto;
position: relative;
border: 5px solid white;
border-style: dashed;
}
#box5 {
background-color: rgb(80, 80, 80);
color: white;
text-align: center;
font-size: 40px;
width: 200px;
height: 100px;
margin: 0 auto;
position: relative;
border: 5px solid white;
border-style: dashed;
}
#cell1 {
text-align: center;
font-size: 40px;
width: 200px;
height: 100px;
margin: 0 auto;
position: relative;
}
#cell2 {
text-align: center;
font-size: 40px;
width: 200px;
height: 100px;
margin: 0 auto;
position: relative;
}
#cell3 {
text-align: center;
font-size: 40px;
width: 200px;
height: 100px;
margin: 0 auto;
position: relative;
}
#cell4 {
text-align: center;
font-size: 40px;
width: 200px;
height: 100px;
margin: 0 auto;
position: relative;
}
#cell5 {
text-align: center;
font-size: 40px;
width: 200px;
height: 100px;
margin: 0 auto;
position: relative;
}
#cell6 {
text-align: center;
font-size: 40px;
width: 200px;
height: 100px;
margin: 0 auto;
position: relative;
}
#cell7 {
text-align: center;
font-size: 40px;
width: 200px;
height: 100px;
margin: 0 auto;
position: relative;
}
#cell8 {
text-align: center;
font-size: 40px;
width: 200px;
height: 100px;
margin: 0 auto;
position: relative;
}
#cell9 {
text-align: center;
font-size: 40px;
width: 200px;
height: 100px;
margin: 0 auto;
position: relative;
}
#cell10 {
text-align: center;
font-size: 40px;
width: 200px;
height: 100px;
margin: 0 auto;
position: relative;
}
#cell11 {
text-align: center;
font-size: 40px;
width: 200px;
height: 100px;
margin: 0 auto;
position: relative;
}
#cell12 {
text-align: center;
font-size: 40px;
width: 200px;
height: 100px;
margin: 0 auto;
position: relative;
}
#cell13 {
text-align: center;
font-size: 40px;
width: 200px;
height: 100px;
margin: 0 auto;
position: relative;
}
#cell14 {
text-align: center;
font-size: 40px;
width: 200px;
height: 100px;
margin: 0 auto;
position: relative;
}
#cell15 {
text-align: center;
font-size: 40px;
width: 200px;
height: 100px;
margin: 0 auto;
position: relative;
}
<div class="container">
<div id="div1">
<div class="text1">To Do</div><br>
<div id="cell1" ondragover="boxOver(event)" ondrop="boxDrop(event, 1)">
<div id="box1" draggable="true" ondragstart="boxDrag(event, 1)">#1</div>
</div>
<div id="cell2" ondragover="boxOver(event)" ondrop="boxDrop(event, 2)">
<div id="box2" draggable="true" ondragstart="boxDrag(event, 2)">#2</div>
</div>
<div id="cell3" ondragover="boxOver(event)" ondrop="boxDrop(event, 3)">
<div id="box3" draggable="true" ondragstart="boxDrag(event, 3)">#3</div>
</div>
<div id="cell4" ondragover="boxOver(event)" ondrop="boxDrop(event, 4)"></div>
<div id="cell5" ondragover="boxOver(event)" ondrop="boxDrop(event, 5)"></div>
</div>
<div id="div2">
<div class="text2">In Progress</div><br>
<div id="cell6" ondragover="boxOver(event)" ondrop="boxDrop(event, 6)">
<div id="box4" draggable="true" ondragstart="boxDrag(event, 4)">#4</div>
</div>
<div id="cell7" ondragover="boxOver(event)" ondrop="boxDrop(event, 7)">
<div id="box5" draggable="true" ondragstart="boxDrag(event, 5)">#5</div>
</div>
<div id="cell8" ondragover="boxOver(event)" ondrop="boxDrop(event, 8)"></div>
<div id="cell9" ondragover="boxOver(event)" ondrop="boxDrop(event, 9)"></div>
<div id="cell10" ondragover="boxOver(event)" ondrop="boxDrop(event, 10)"></div>
</div>
<div id="div3">
<div class="text3">Done</div><br>
<div id="cell11" ondragover="boxOver(event)" ondrop="boxDrop(event, 11)"></div>
<div id="cell12" ondragover="boxOver(event)" ondrop="boxDrop(event, 12)"></div>
<div id="cell13" ondragover="boxOver(event)" ondrop="boxDrop(event, 13)"></div>
<div id="cell14" ondragover="boxOver(event)" ondrop="boxDrop(event, 14)"></div>
<div id="cell15" ondragover="boxOver(event)" ondrop="boxDrop(event, 15)"></div>
</div>
</div>