zoukankan      html  css  js  c++  java
  • HTML5-drag/drop

    浏览器支持情况

    Internet Explorer 9+, Firefox, Opera, Chrome, and Safari support drag and drop.

    Note: Drag and drop does not work in Safari 5.1.7 and earlier versions.

    drag

    1、设置元素可拽托:

    <div draggable="true" id="dragme"></div>

    2、设置元素拽托时发生的事情,通过属性ondragstart设置:

    <div draggable="true" id="dragme" ondragstart="drag(event)"></div>

    3、如果需要传值,通过 事件属性的方法 -  dataTransfer.setData()传递:

    function drag(evt) {
      evt.dataTransfer.setData("text/html", ev.target.id);
    }

    drop

    1、设置元素属性ondrop 和 ondragover

    <div id="drop1" ondrop="drop(event)" ondragover="allowDrop(event)"></div>

    2、ondragover 用于设置where the dragged data can be droped,设置此属性是用来阻止元素的默认处理(默认情况下,data/element是不允许drop到其他元素中),使元素可以被放置:

    function allowDrop(evt) {
      evt.preventDefault();
    }

    3、当元素放置的时候,通过ondrop属性处理drop事件:

    function drop(evt) {
        evt.preventDefault(); //default is open as link on drop
        var data = evt.dataTransfer.getData("text/html"); //获得传递的数据
        evt.target.appendChild(document.getElementById(data));
    }

    例子

    <!DOCTYPE HTML>
    <html>
    
    <head>
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
      <style type="text/css">
      #drop1,
      #drop2 {
        width: 5em;
        height: 5em;
        border: 1px solid #aaaaaa;
        margin: 1em;
        padding: 1em;
        text-align: center;
        line-height: 5em;
        float: left;
      }
      </style>
      <script type="text/javascript">
      function allowDrop(evt) {
        evt.preventDefault();
      }
    
      function drag(evt) {
        evt.dataTransfer.setData("Text", evt.target.id);
      }
    
      function drop(evt) {
        evt.preventDefault();
        var data = evt.dataTransfer.getData("Text");
        evt.target.appendChild(document.getElementById(data));
      }
      </script>
    </head>
    
    <body>
      <div id="drop1" ondrop="drop(event)" ondragover="allowDrop(event)">
        <div id="dragme" draggable="true" ondragstart="drag(event)">drag me</div>
      </div>
      <div id="drop2" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
    
    </body>
    
    </html>
  • 相关阅读:
    【[SDOI2016]排列计数】
    newcoder NOIP提高组模拟赛C题——保护
    【[JLOI2014]松鼠的新家】
    【[USACO08NOV]奶牛混合起来Mixed Up Cows】
    【[USACO13NOV]没有找零No Change】
    【[SHOI2009]会场预约】
    【[USACO12FEB]附近的牛Nearby Cows】
    UVA11987 【Almost Union-Find】
    基于递归的BFS(Level-order)
    遍历二叉树
  • 原文地址:https://www.cnblogs.com/hemi/p/4001945.html
Copyright © 2011-2022 走看看