• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    html5拖拽应用记录及注意点

    下面通过代码给大家介绍html5拖拽应用记录,具体代码如下所示:

    e.dataTransfer.setData("a","设置的值");
    e.dataTransfer.getData("a");
    function drop(e)
    {
        <!--尝试console.log(e),这里能拿到好多你用得到的api-->
        e.dataTransfer.setData("a", e.target.id);
    }

    拖动元素

    被拖动的元素上要加入入draggable="true"属性

    一些注意点:

    drop 必须配上 dragover,否则事件不生效

    document.getElementById('right').ondragover = function (ev) {
        ev.preventDefault(); //阻止向上冒泡
    }
    document.getElementById('right').ondrop = function (ev) {
        ev.preventDefault(); //阻止向上冒泡
        console.log("放入");
    }

    react中使用事件必须是驼峰,例如:onDragOver

    vue中在ui库组件上加的时候记得加 .native,例如:@drop.native

    完整测试案例

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            *{
                margin: 0;
                padding: 0;
            }
            .div1{
                width: 200px;
                height: 200px;
                border: 1px solid red;
                position: relative;
                margin-left:20px;
                float: left;
            }
            .div2{
                width: 200px;
                height: 200px;
                border: 1px solid blue;
                position: relative;
                margin-left:20px;
                float: left;
            }
            .div3{
                width: 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 p=document.querySelector("#pe1");
        var div2=document.querySelector("#div2");
        var div3=document.querySelector("#div3");
        /*应用于被拖拽元素的事件
        *ondrag         应用于拖拽元素,整个拖拽过程都会调用--持续
         ondragstart    应用于拖拽元素,当拖拽开始时调用
         ondragleave    应用于拖拽元素,当鼠标离开拖拽元素时调用
         ondragend    应用于拖拽元素,当拖拽结束时调用*/
        p.ondragstart=function(e){
            console.log("开始");
            e.dataTransfer.setDate("a")
        }
        p.ondragend=function(){
            console.log("结束");
        }
        p.ondragleave=function(){
            console.log("离开目标");
        }
        p.ondrag=function(){
            // console.log("持续触发---111111");
        }
     
        /*应用于目标元素的事件
        *ondragenter    应用于目标元素,当拖拽元素进入时调用
         ondragover    应用于目标元素,当停留在目标元素上时调用
         ondrop        应用于目标元素,当在目标元素上松开鼠标时调用
         ondragleave    应用于目标元素,当鼠标离开目标元素时调用*/
        div2.ondragenter=function(){
            console.log("进入目标1");
        }
        div2.ondragover=function(e){
            console.log(e);
            console.log("在目标1中盘旋");
            //console.log("ondragover");
            /*如果想触发ondrop事件,那么就必须在这个位置阻止浏览器的默认行为*/
            e.preventDefault();
        }
        /*浏览器默认会阻止ondrop事件:我们必须在ondragover中阻止浏览器的默认行为*/
        div2.ondrop=function(){
            console.log("锁定目标1,降落");
            /*添加被拖拽的元素到当前目标元素*/
            div2.appendChild(p);
        }
        div2.ondragleave=function(){
            console.log("离开目标1");
        }
    
        div3.ondragenter=function(){
            console.log("进入目标2");
        }
     
        div3.ondragover=function(e){
            console.log("在目标2中盘旋");
            //console.log("ondragover");
            /*如果想触发ondrop事件,那么就必须在这个位置阻止浏览器的默认行为*/
            e.preventDefault();
        }
        div3.ondrop=function(){
            console.log("锁定目标2,降落");
            /*添加被拖拽的元素到当前目标元素*/
            div3.appendChild(p);
        }
        div3.ondragleave=function(){
            console.log("离开目标2");
        }
    </script>
    </body>
    </html>

    总结

    到此这篇关于html5拖拽应用记录的文章就介绍到这了,更多相关html5拖拽应用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章,希望大家以后多多支持脚本之家!

    上一篇:解决html5中的video标签ios系统中无法播放使用的问题
    下一篇:HTML5实现直播间评论滚动效果的代码
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    html5拖拽应用记录及注意点 html5,拖拽,应用,记录,及,