如何通过拖放操作使用jQuery删除css属性

时间:2019-01-04 05:58:29

标签: javascript jquery html css

我在four images classbox idbox1box2box3中有box4 ..

当我将图像拖放到boxright1时,图像没有正确地拖放到矩形上。

我在放置区域tried的{​​{1}}的{​​{1}}中添加了disable property absolute,以便它会变成矩形。...但是#box(number)

我希望图像正确放置在矩形上

如何实现?

didnt worked
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");
  console.log(data);
   $("#data").removeAttr("position");
  ev.target.appendChild(document.getElementById(data));
}
#box1 {
  position: absolute;
  top: 25.3vh;
  left: -10.98vw;
  background-repeat: no-repeat;
  background-size: contain;
}

#box1 p {
  width: 10.0vw;
  height: 10.0vh;
  border-radius: 25%;
}


#box2 {
  position: absolute;
  top: 4.7vh;
  left: -10.98vw;
  
  cursor:pointer;
  border:px solid #0066CC;
  background-repeat:no-repeat;
  background-size: contain;
}

#box2 p {
 width: 5.0vw;
  height: 5.0vh;
  border-radius: 25%;
}

#box3 {
  position: absolute;
  top: 2.7vh;
  left: 43.98vw;
  background-size: contain;
  background-repeat:no-repeat;  
}

#box3 p {
  width: 7.0vw;
  height: 7.0vh;
  border-radius: 25%;
}

#box4 {
  position: absolute;
  top: 27.3vh;
  left: 40.98vw;
  background-repeat:no-repeat;
  background-size: contain;
}

#box4 p {
  width: 10.0vw;
  height: 10.0vh;
  border-radius: 25%;
}
.container2 {
  width: 50.1vw;
  position: fixed;
  top: 10.5vh;
  left: 30.5vw;
}

.boxright1 p {
  font-size: calc(2vw);
  height: 4vh;
  margin: 0;
  color: white;
}

.boxright1 {
  position: absolute;
  top: 65.3vh;
  left: 17.5vw;  
  width: 61.0vw;
  height: 35.0vh;  
  cursor:pointer;
  border:2px solid black;
  background-repeat:no-repeat;
  background-size: contain;
  background-image:url(images/name%20board%20witout%20rope2.png);
  background-size: 40vw 55vh; 
  }

in the this image the #box1 image is out of the rectangle when position absolute is enabled in the dropped area

in the this image the #box1 image is inside of the rectangle when position absolute is disablesd  in the dropped area

2 个答案:

答案 0 :(得分:1)

考虑此库,其中包含您所需的Sortable 您可以使用此库创建和删除任何类型的DOM

答案 1 :(得分:1)

您可以将位置更改为unset。也应该是$("#"+data),因为data是一个变量 $("#"+data).css("position","unset");

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");
   $("#"+data).css("position","unset");
  ev.target.appendChild(document.getElementById(data));
}
#box1 {
  position: absolute;
  top: 25.3vh;
  left: -10.98vw;
  background-repeat: no-repeat;
  background-size: contain;
}

#box1 p {
  width: 10.0vw;
  height: 10.0vh;
  border-radius: 25%;
}


#box2 {
  position: absolute;
  top: 4.7vh;
  left: -10.98vw;
  
  cursor:pointer;
  border:px solid #0066CC;
  background-repeat:no-repeat;
  background-size: contain;
}

#box2 p {
 width: 5.0vw;
  height: 5.0vh;
  border-radius: 25%;
}

#box3 {
  position: absolute;
  top: 2.7vh;
  left: 43.98vw;
  background-size: contain;
  background-repeat:no-repeat;  
}

#box3 p {
  width: 7.0vw;
  height: 7.0vh;
  border-radius: 25%;
}

#box4 {
  position: absolute;
  top: 27.3vh;
  left: 40.98vw;
  background-repeat:no-repeat;
  background-size: contain;
}

#box4 p {
  width: 10.0vw;
  height: 10.0vh;
  border-radius: 25%;
}
.container2 {
  width: 50.1vw;
  position: fixed;
  top: 10.5vh;
  left: 30.5vw;
}

.boxright1 p {
  font-size: calc(2vw);
  height: 4vh;
  margin: 0;
  color: white;
}

.boxright1 {
  position: absolute;
  top: 65.3vh;
  left: 17.5vw;  
  width: 61.0vw;
  height: 35.0vh;  
  cursor:pointer;
  border:2px solid black;
  background-repeat:no-repeat;
  background-size: contain;
  background-image:url(images/name%20board%20witout%20rope2.png);
  background-size: 40vw 55vh; 
  }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<p>not able to drop correctly on the rectangle:</p>
<div class="container2">  
    <div class="box" id="box1" draggable="true" ondragstart="drag(event)" style="background-image:url(https://picsum.photos/200/300)">
      <p name="values" id="name1" class="hidden"></p>
    </div>
        
    <div class="box" id="box2" draggable="true" ondragstart="drag(event)" style="background-image:url(https://picsum.photos/g/200/300)">
      <p name="values" id="name2" class="hidden"></p>
    </div>
        
    <div class="box" id="box3" draggable="true" ondragstart="drag(event)" style="background-image:url(https://picsum.photos/200/300?image=0)">
      <p name="values" id="name3" class="hidden"></p>
    </div>
        
    <div class="box" id="box4" draggable="true" ondragstart="drag(event)" style="background-image:url(https://picsum.photos/200/300/?gravity=east)">
      <p name="values" id="name4" class="hidden"></p>
    </div>   
</div>
<div class="boxright1" ondrop="drop(event)" ondragover="allowDrop(event)" id="4" name="d"></div>