美文网首页
拖拽事件

拖拽事件

作者: 飞过的沙 | 来源:发表于2017-06-03 11:39 被阅读0次
  • 步骤
    • 想要将拖放的对象元素的draggable属性设为true(draggable="true").这样才能将元素进行拖放。另外,img元素与a元素(必须指定href)默认允许拖放
    • 编写与拖放有关的处理代码

  • 拖放的相关事件
    |事件| 产生事件的元素|描述|
    |:------:|:-----:|:------:|
    |dragstart|被拖放的元素|开始拖放操作|
    |drag|被拖放的元素|拖放过程中|
    |dragenter|拖放过程中鼠标经过的元素|被拖放的元素开始进入本元素的范围内|
    |dragover|拖放过程中鼠标经过的元素|被拖放的元素正在本元素的范围内移动|
    |dragleave|拖放过程中鼠标经过的元素|被拖放的元素离开了本元素的范围|
    |drop|拖放的目标元素|有其他元素呗拖放到本元素中|
    |dragend|拖放的对象元素|拖放操作结束|

  • 案例
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>拖拽事件</title>
    <script>
        function init() {
            var source = document.getElementById('dragme')
            var dest = document.getElementById("text")
                // (1)监听开始拖放事件
            source.addEventListener('dragstart', function(ev) {
                    //向dataTransfar对象追加数据
                    // dataTransfar对象专门用来存放拖放时要携带的数据,可以被设置为拖动事件的dataTransfer属性
                    var dt = ev.dataTransfer
                    dt.effectAllowed = "all"

                    // (2)拖动元素
                    dt.setData("text/plain", "哈喽")
                }, false)
                // (3)dragend:拖放结束
            dest.addEventListener('dragend', function(ev) {
                    // 阻止默认事件提交
                    ev.preventDefault()
                }, false)
                //(4)drop:被拖放
            dest.addEventListener("drop", function(ev) {
                var dt = ev.dataTransfer
                var text = dt.getData("text/plain")
                dest.textContent += text
                    // (5)不执行默认处理(拒绝被拖放)
                ev.preventDefault()
                    // 停止事件传播
                ev.stopPropagation()
            }, false)
        }
        // (6)设置页面属性,不执行默认处理(拒绝呗拖放)
        document.ondragover = function(e) {
            e.preventDefault()
        }
        document.ondrop = function(e) {
            e.preventDefault()
        }
    </script>
</head>

<body onload="init()">
    <h1>简单拖放实例</h1>
    <div id="dragme" draggable="true" style="width:200px;border:1px solid gray">请拖放</div>
    <div id="text" style="width:200px;height:200px;border:1px solid gray"></div>

</body>

</html>

  • 案例中所需要的属性
    • <a href="">dataTransfer</a>
    • <a href="">setData</a>

相关文章

  • 拖拽API

    实现拖拽效果 目前实现拖拽效果 HTML5拖拽 源元素事件例子 目标元素事件 从本地拖放图片到页面中 实现拖拽

  • Html5 + Css 3 文件拖拽上传功能

    拖拽上传文件功能 拖拽事件 拖拽元素ondrag 应用于拖拽元素,整个拖拽过程都会调用ondragstart应用...

  • 拖拽上传

    拖拽事件 拖拽元素ondrag 应用于拖拽元素,整个拖拽过程都会调用ondragstart应用于拖拽元素,...

  • HTML 5 拖拽

    @(HTML5)[HTML 5拖拽] [TOC] 十三、HTML 5 拖拽 HTML 5 拖拽事件 图片自带拖拽功...

  • h5-API

    拖拽API 属性 draggable 设置为 draggable=true 可以被拖拽 拖拽事件 ondragst...

  • 拖拽事件

    拖拽事件 draggable 规定盒子是否能拖拽 true 可以 false 不行ondragstart 开始拖拽...

  • H5新增API

    拖拽API 属性 draggable 设置为true 可以被拖拽 拖拽事件 ondragstart 开始被拖动...

  • HTML5新增API

    拖拽API 属性 draggable 设置为true 可以被拖拽 拖拽事件 ondragstart 开始被拖动...

  • js:拖拽事件

    拖拽事件 ondragstart当拖拽元素被开始拖拽时,event:拖拽元素。[从操作系统向浏览器拖拽文件不会触发...

  • JavaScrip--事件应用

    事件应用 拖拽 拖拽原理 三大事件 -鼠标和Div的相对距离不变 把拖拽加到document上 如果拖得太快,会移...

网友评论

      本文标题:拖拽事件

      本文链接:https://www.haomeiwen.com/subject/ssnntxtx.html