清静经 2019-05-17 13:24 采纳率: 0%
浏览 1187

html通过draggable如何实现将拖放后位置原有的内容删除?

模拟车在车库中换车位的过程,将车从一个车位拖到其余的空车位上,然后让空车位原有的图片消失,显示拖动的车的图片。目前只实现了一部分,如下:图片说明
代码如下:

    <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>
    <style>
        #tal1 td{
            border: 1px solid black;
        }
    </style>
    <table width="300px" height="300px">
        <tr>
            <td ondrop="drop(event)" ondragover="allowDrop(event)"><img draggable="true" ondragstart="drag(event)" id="im1" src="img/1.png"/></td>
            <td ondrop="drop(event)" ondragover="allowDrop(event)"><img draggable="true" ondragstart="drag(event)" id="im2" src="img/1.png"/></td>
            <td ondrop="drop(event)" ondragover="allowDrop(event)"><img id="im3" src="img/e.png"/></td>
        </tr>
        <tr>
            <td ondrop="drop(event)" ondragover="allowDrop(event)"><img draggable="true" ondragstart="drag(event)" id="im4" src="img/1.png"/></td>
            <td ondrop="drop(event)" ondragover="allowDrop(event)"><img id="im5" src="img/e.png"/></td>
            <td ondrop="drop(event)" ondragover="allowDrop(event)"><img id="im6" src="img/e.png"/></td>
        </tr>
        <tr>
            <td ondrop="drop(event)" ondragover="allowDrop(event)"><img id="im7" src="img/e.png"/></td>
            <td ondrop="drop(event)" ondragover="allowDrop(event)"><img id="im8" src="img/e.png"/></td>
            <td ondrop="drop(event)" ondragover="allowDrop(event)"><img id="im9" src="img/e.png"/></td>
        </tr>
    </table>
  • 写回答

1条回答 默认 最新

  • mannymu 2019-05-17 19:57
    关注
      <script>
            function allowDrop(ev)
            {
                ev.preventDefault();
            }
            function drag(ev)
            {   var oid = ev.target.id
                if(!oid){
                    oid = "dragging" + (Date.now()+ Math.floor(Math.random()*1000 + 100)); //生成随机的 id
                    ev.target.setAttribute("id",oid);
                }
                ev.dataTransfer.setData("Text",oid);
            }
            function drop(ev)
            {
                ev.preventDefault();
                var data=ev.dataTransfer.getData("Text");
                var dom = document.getElementById(data);
                var parent = dom.parentNode;
                parent.className = ""; //把 drop 类名去掉,显示出空位
    
                ev.target.className = "empty"; //加上 drop 类名,隐藏空位
                ev.target.appendChild(dom);
            }
        </script>
        <style>
            #tal1 td{
                border: 1px solid black;
            }
             #tal1 td.drop .empty{
                 display: none;
             }
        </style>
        <table width="300px" height="300px">
            <tr>
                <td ondrop="drop(event)" ondragover="allowDrop(event)" class="drop">
                    <img draggable="true" ondragstart="drag(event)"    src="img/1.png"/>
                    <img  src="img/e.png" class="empty" />
                </td>
               <td ondrop="drop(event)" ondragover="allowDrop(event)">
                <img draggable="true" ondragstart="drag(event)"    src="img/1.png"/>
                <img  src="img/e.png" class="empty" />
               </td>
                <td ondrop="drop(event)" ondragover="allowDrop(event)">
                    <img  src="img/e.png" class="empty" />
                </td>
            </tr>
            <tr>
                <td ondrop="drop(event)" ondragover="allowDrop(event)">
                    <img  src="img/e.png" class="empty" />
                </td>
               <td ondrop="drop(event)" ondragover="allowDrop(event)">
                <img  src="img/e.png" class="empty" />
               </td>
                <td ondrop="drop(event)" ondragover="allowDrop(event)">
                    <img  src="img/e.png" class="empty" />
                </td>
            </tr>
          <tr>
              <td ondrop="drop(event)" ondragover="allowDrop(event)">
                <img  src="img/e.png" class="empty" />
            </td>
             <td ondrop="drop(event)" ondragover="allowDrop(event)">
                <img  src="img/e.png" class="empty" />
             </td>
              <td ondrop="drop(event)" ondragover="allowDrop(event)" class="drop">
                <img draggable="true" ondragstart="drag(event)"   src="img/1.png"/>
                <img  src="img/e.png" class="empty" />
              </td>
          </tr>
        </table>
    

    大概就是这样了

    评论

报告相同问题?

悬赏问题

  • ¥15 关于vue2中methods使用call修改this指向的问题
  • ¥15 idea自动补全键位冲突
  • ¥15 iis10中如何阻止别人网站重定向到我的网站
  • ¥15 滑块验证码移动速度不一致问题
  • ¥15 定制ai直播实时换脸软件
  • ¥100 栈回溯相关,模块加载后KiExceptionDispatch无法正常回溯了
  • ¥15 Utunbu中vscode下cern root工作台中写的程序root的头文件无法包含
  • ¥15 麒麟V10桌面版SP1如何配置bonding
  • ¥15 Marscode IDE 如何预览新建的 HTML 文件
  • ¥15 K8S部署二进制集群过程中calico一直报错