美文网首页
H5 元素拖放

H5 元素拖放

作者: 壬万er | 来源:发表于2017-06-23 10:23 被阅读0次

今天分享一个元素拖放的案例,注意:这个是H5新增的;

先放图一张:

1.gif

代码:(一些API和细节都在代码注释里了)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        div{
            width:400px;
            height:100px;
            background: blue;
            margin-bottom:10px;
            display: flex;
        }
        p{
            width:200px;
            height:50px;
            margin:auto;
            display: flex;
            background: #fff;
            align-items:center;
            justify-content:center;
        }
    </style>
</head>
<body>
<div>
    <p draggable="true">可以拖动的文本</p>
</div>
<div></div>
<div></div>
<div></div>
<script>
    //首先实现拖动要用到的方法有 dragenter  dragover dragleave  drop
    var p = document.querySelector("p");
    /*开始拖动的时触发。 只触发一次  在被拖动的元素上触发*/
    p.addEventListener("dragstart",function () {
//        console.log("p","dragstart..开始拖动")
    });
    /* 拖动的过程中触发。 只要元素在拖动,会一直重复触发   在被拖动的元素上触发*/
    p.addEventListener("drag",function () {
//        console.log("p","drag...")
    });
    /*进入另外一个元素的区域时触发.  是在目标元素上触发*/
    document.addEventListener("dragenter",function (e) {
//        console.log(e.target,"dragenter...进入目标区域");
        var target = e.target;
        if(target.tagName.toLocaleLowerCase() == "div" ){
            target.style.backgroundColor = "red";
        }

    });
    /* 在潜在目标区域的上方的时候会重复触发 */
    document.addEventListener("dragover",function (e) {
        e.preventDefault();

//        console.log(e.target,"dragover...进入目标区域")
    });
    /*从潜在目标元素上方离开的时候触发*/
    document.addEventListener("dragleave",function (e) {
//        console.log(e.target,"dragleave...离开目标区域")
        if(e.target.tagName.toLocaleLowerCase() == "div" ){
            e.target.style.backgroundColor = "blue";
        }
    });
    /*在松开鼠标拖放结束的时候触发*/
    p.addEventListener("dragend",function () {
//        console.log("p","drag...end")
    });
    /*释放拖动元素的时候触发。  这个事件是在dropend事件触发前触发。*/
    document.addEventListener("drop",function (e) {
//        console.log(e.target,"drop...放下")
        if(e.target.tagName.toLocaleLowerCase() == "div"){
            p.parentNode.removeChild(p);
            e.target.appendChild(p);
            e.target.style.backgroundColor = "blue";
        }
    })

</script>
</body>
</html>

相关文章

  • HTML5拖放

    拖放 拖放是一种常见的特效---将某个对象拖到某个位置。在H5中,任何元素都都能拖放。 实例: 亲自试一试 实例解...

  • H5 元素拖放

    今天分享一个元素拖放的案例,注意:这个是H5新增的; 先放图一张: 代码:(一些API和细节都在代码注释里了)

  • 前端面试05:说一下 HTML5 drag api

    dragstart:事件主体是被拖放元素,在开始拖放被拖放元素时触发。 darg:事件主体是被拖放元素,在正在拖放...

  • 011 HTML5 拖放事件 01

    拖放事件 拖放操作是将一个元素拖放到另一个元素的操作,这项操作涉及到两个元素:被拖放元素和放置元素。在拖放过程中,...

  • H5 拖放事件详解

    拖放事件 H5的拖放事件提供了多个接口: 1、drag:当元素或者选中的文本被拖动时触发(每几百毫秒触发一次),应...

  • HTML5

    原生拖放: 浏览器原生支持的拖放元素只有图像链接和文本,如果别的元素也需要拖放那就需要将元素的draggable属...

  • 学习笔记-拖放/地理定位-2017.2.10

    一、HTML5 拖放(Drag 和 Drop) 1、设置元素为可拖放 首先,为了使元素可拖动,把 draggabl...

  • H5拖放异步文件上传之二——上传进度监听

      上一篇《H5拖放+FormData接口+NodeJS,完整异步文件上传(一)》,我们走通了拖放文件上传的整个流...

  • 原生的 HTML 5 拖拽与JavaScript File AP

    W3C中关于H5拖拽(拖放)的介绍 拖放(Drag 和 drop)是 HTML5 标准的组成部分拖放是一种常见的特...

  • js实现拖拽事件

    拖放事件 拖放是由拖动与释放两部分组成,拖放事件也分为被拖动元素的相关事件,和容器的相关事件。 被拖动元素的相关事...

网友评论

      本文标题:H5 元素拖放

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