首頁  >  文章  >  web前端  >  HTML5 拖曳複製功能的實現

HTML5 拖曳複製功能的實現

高洛峰
高洛峰原創
2017-02-17 17:11:192157瀏覽

拖曳是一種常見的特性,即抓取物件以後拖曳到另一個位置。 在 HTML5 中,拖曳是標準的一部分,任何元素都能夠拖曳。 Html5拖曳非常常見的功能,但是大部分拖曳的案例都是一個剪切的過程, 專案中需要實現Html5拖曳複製的功能,Html5拖曳複製很簡單,只需要在普通Html5拖曳的過程中做一點小小的改動即可。

ps: 本篇博文為非首頁文章,只是簡單的筆記。

瀏覽器支援

  1. Internet Explorer 9

  2. Firefox

  3. Opera 12

  4. v1.0碼部分

  5. <!DOCTYPE html>
    <html>
    <head>
      <styletype="text/css">
        #p1 {
          width: 700px;
          height: 120px;
          padding: 10px;
          border: 1px solid #aaaaaa;
        }
     
        #drag1 {
          cursor:pointer;
        }
      </style>
      <scripttype="text/javascript">
        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");
          var item = document.getElementById(data).cloneNode();
          ev.target.appendChild(item);
        }
      </script>
    </head>
    <body>
      <p>请把 Windows Azure 的图片拖放到矩形中:</p>
      <pid="p1" ondrop="drop(event)" ondragover="allowDrop(event)"></p>
      <br/>
      <br/>
      <br/>
      <br/>
      <br/>
      <imgid="drag1" src="http://www.cnblogs.com/images/cnblogs_com/toutou/699740/t_Azure.png" draggable="true" ondragstart="drag(event)"/>
    </body>
    </html>
  6. 程式碼解析
實作想法就是複製被拖曳的元素,然後把複製元素appendChild()到指定位置

實作Html5拖曳複製的核心程式碼.cloneNode()

Html5拖曳複製完成以後,其實還有很多事情可以在appendChild()執行以後完成,這個看具體需求吧

如果只是想實現傳統的HTML5拖曳的話,移除var item = document.getElementById(data).cloneNode();,然後ev.target .appendChild(data);即可

通過此文,希望能幫助大家,謝謝大家對本站的支持!

更多HTML5 拖曳複製功能的實作相關文章請關注PHP中文網!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn