zoukankan      html  css  js  c++  java
  • HTML5 拖放(Drag 和 Drop)

    一、定义

    • 拖放是一种常见的特性,即抓取对象以后拖到另一个位置。在 HTML5 中,拖放是标准的一部分,任何元素都能够拖放。
    • Internet Explorer 9+, Firefox, Opera, Chrome, 和 Safari 支持拖动。Safari 5.1.2不支持拖动

    二、使用

    • 设置元素为可拖放:为了使元素可拖动,把 draggable 属性设置为 true 

    • 拖动什么 :ondragstart 和 setData( ),其中ondragstart 它规定了被拖动的数据。setData() 方法设置被拖数据的数据类型和值。

    • 放到何处 :ondragover 事件规定在何处放置被拖动的数据。默认地,无法将数据/元素放置到其他元素中。如果需要设置允许放置,我们必须阻止对元素的默认处理方式。

      这要通过调用 ondragover 事件的 event.preventDefault() 方法

    • 进行放置 :ondrop 当放置被拖数据时,会发生 drop 事件。

    三、案例

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>html5拖放</title>
        <style>
            .box{
                width: 150px;
                height: 150px;
                background-color: red;
                position: absolute;
                top: 150px;
                left: 20%;
            }
            .container{
                width: 300px;
                height: 300px;
                background-color: pink;
                position: absolute;
                top: 100px;
                left: 50%;
            }
        </style>
    </head>
    <body>
        <div class="box" draggable="true"></div>
        <div class="container"></div>
        <script>
            var box=document.querySelector(".box");
            var container=document.querySelector(".container");
            // 整个拖拽都会执行
            box.addEventListener("drag",function(e){
                console.log('drag');
            });
            // 拖拽的点离开当前盒子
            box.addEventListener('dragleave',function(){
                console.log('dragleave');
            });
            //拖拽开始
            box.addEventListener('dragstart',function(){
                console.log('dragstart');
            });
            // 拖拽结束
            box.addEventListener('dragend',function(ev){
                this.style.backgroundColor='';
                console.log('dragend');
            })
            // 在目标元素松上移动
            container.addEventListener('dragover',function(e){
                this.style.backgroundColor='yellow';
                console.log('目标drogover');
                e.preventDefault();
            });
            // 在目标元素上松开
            container.addEventListener('drop',function(e){
                this.style.backgroundColor='black';
                console.log('目标drop');
                e.preventDefault();
            });
            // 在目标元素上离开
            container.addEventListener('dragleave',function(e){
                this.style.backgroundColor='';
                console.log('目标drogleave');
                e.preventDefault();
            });
        </script>
    </body>
    </html>

  • 相关阅读:
    存储过程拆分字符窜
    jquery学习
    Sql常用语法
    存储过程分页
    asp.net 定时执行程序
    C# 多线程并发处理数据库数据,发送信号等待处理完统一插入.(转)
    (转)CAS 单点登录安装笔记4
    C# 自动退出当前程序,然后再启动
    给自己的Web文件夹增加一个图片或其它文件认证
    Setting NTFS Permissions with C#
  • 原文地址:https://www.cnblogs.com/EricZLin/p/9267640.html
Copyright © 2011-2022 走看看