zoukankan      html  css  js  c++  java
  • 拖拽接口的使用

    <style>
    *{
    margin: 0;
    padding: 0;
    }
    .div1{
    200px;
    height: 200px;
    border: 1px solid red;
    position: relative;
    margin-left:20px;
    float: left;
    }
    .div2{
    200px;
    height: 200px;
    border: 1px solid blue;
    position: relative;
    margin-left:20px;
    float: left;
    }
    .div3{
    200px;
    height: 200px;
    border: 1px solid green;
    position: relative;
    margin-left:20px;
    float: left;
    }
    p{
    background-color: orange;
    margin-top: 5px;
    }
    </style>
    </head>
    <body>
    <div class="div1" id="div1">
    <!--在h5中,如果想拖拽元素,就必须为元素添加draggable="true". 图片和超链接默认就可以拖拽-->
    <p id="pe" draggable="true">试着把我拖过去</p>
    <p id="pe1" draggable="true">试着也把我拖过去</p>
    </div>
    <div class="div2" id="div2"></div>
    <div class="div3" id="div3"></div>
    <script>
    /*学习拖拽,主要就是学习拖拽事件*/
    var obj=null;//当前被拖拽的地元素

    /*应用于被拖拽元素的事件
    *ondrag 应用于拖拽元素,整个拖拽过程都会调用--持续
    ondragstart 应用于拖拽元素,当拖拽开始时调用
    ondragleave 应用于拖拽元素,当鼠标离开拖拽元素时调用
    ondragend 应用于拖拽元素,当拖拽结束时调用*/
    document.ondragstart=function(e){
    /*通过事件捕获来获取当前被拖拽的子元素*/
    e.target.style.opacity=0.5;
    e.target.parentNode.style.borderWidth="5px";
    obj= e.target;
    /*通过dataTransfer来实现数据的存储与获取
    * setData(format,data):
    * format:数据的类型:text/html text/uri-list
    * Data:数据:一般来说是字符串值*/
    e.dataTransfer.setData("text/html", e.target.id);
    };
    document.ondragend=function(e){
    e.target.style.opacity=1;
    e.target.parentNode.style.borderWidth="1px";
    };
    document.ondragleave=function(e){
    };
    document.ondrag=function(e){
    };

    /*应用于目标元素的事件
    *ondragenter 应用于目标元素,当拖拽元素进入时调用
    ondragover 应用于目标元素,当停留在目标元素上时调用
    ondrop 应用于目标元素,当在目标元素上松开鼠标时调用
    ondragleave 应用于目标元素,当鼠标离开目标元素时调用*/
    document.ondragenter=function(e){
    console.log(e.target);
    };
    document.ondragover=function(e){
    /*如果想触发ondrop事件,那么就必须在这个位置阻止浏览器的默认行为*/
    e.preventDefault();
    };
    /*浏览器默认会阻止ondrop事件:我们必须在ondragover中阻止浏览器的默认行为*/
    document.ondrop=function(e){
    /*添加元素*/
    //e.target.appendChild(obj);
    /*通过e.dataTransfer.setData存储的数据,只能在drop事件中获取*/
    var id=e.dataTransfer.getData("text/html");
    /*console.log("id="+id);*/
    e.target.appendChild(document.getElementById(id));
    };
    document.ondragleave=function(e){
    }
    </script>
  • 相关阅读:
    771. Jewels and Stones
    706. Design HashMap
    811. Subdomain Visit Count
    733. Flood Fill
    117. Populating Next Right Pointers in Each Node II
    250. Count Univalue Subtrees
    94. Binary Tree Inorder Traversal
    116. Populating Next Right Pointers in Each Node
    285. Inorder Successor in BST
    292. Nim Game Java Solutin
  • 原文地址:https://www.cnblogs.com/lujieting/p/10116724.html
Copyright © 2011-2022 走看看