zoukankan      html  css  js  c++  java
  • HTML5 拖动API

    <html>
    <head>
        <title></title>
        <meta charset=utf-8>
        <meta name=description content="">
        <meta name=viewport content="width=device-width, initial-scale=1">
    </head>
    <style>

        #canvas{
            300px;
            height:300px;
            background:orange;
            font:italic 13px century gothic;
            color:darkseagreen   ;
            padding: 5px;
        }
        
        #selector{
            500px;
            height:50px;
            border:solid 1px grey;
        }

        #selector li{
            100px;
            height:50px;
            line-height: 50px;
            list-style: none;
            display: inline-block;
        }

        .darkmagenta {
            background: darkmagenta ;
        }

        .green{
            background: green;
        }

        .brown{
            background: brown;
        }

        .darkslateblue{
            background: darkslateblue;
        }

    </style>

    <script>
    function init(){
        var lists = document.getElementsByTagName("li");
        /*set drag icon*/
        var dragicon = document.createElement("img");
        dragicon.src = 'mini-vector-icons.png';

        /*effectAllowed 一般在dragstart中设置*/
        for (var i = 0; i < lists.length; i++) {
            lists[i].setAttribute("draggable",true);
            lists[i].addEventListener("dragstart",function(e){
                var dataTransfer = e.dataTransfer;
                dataTransfer.setDragImage(dragicon,-5,-15);
                dataTransfer.effectAllowed = 'copy';
                dataTransfer.setData("text/plain",this.getAttribute("class"));
            },false)
        }

        var canvas = document.getElementById("canvas");

        /*dropEffect 一般在dragover中设置*/
        canvas.addEventListener("dragover",function(e){
            var dataTransfer = e.dataTransfer;
            dataTransfer.dropEffect = 'copy';
            e.preventDefault();
        },false)


        canvas.addEventListener("dragend",function(e){
            e.preventDefault();
        },false)

        canvas.addEventListener("drop",function(e){
            var dataTransfer = e.dataTransfer;
            var className = dataTransfer.getData("text/plain");
            this.style.backgroundColor = className;
            e.preventDefault();
            e.stopPropagation();
        },false)
    }
        document.ondragover = function(e){e.preventDefault();};
        document.ondrop = function(e){e.preventDefault();};
    </script>
    <body onload="init()">
        <ul id="selector">
            <li class="darkmagenta "></li>
            <li class="green"></li>
            <li class="brown"></li>
            <li class="darkslateblue"></li>
        </ul>

        <div id="canvas">
            <details>
                <summary><h3>支持拖动处理的mime类型</h3></summary>
                text/plain </br>
                text/html </br>
                text/xml </br>
                text/uri-list
            </details>

            <details>
                <summary><h3>DataTransfer对象的属性与方法</h3></summary>
                dropEffect </br>
                effectAllowed </br>
                setData </br>
                getData </br>
                clearData(String format) [不带参数清空所有数据]</br>
                setDragImage
            </details>
        </div>
    </body>
    </html>

  • 相关阅读:
    leetcode------Sum Root to Leaf Numbers
    TesserOCR训练
    【转载】C#.Net 创建网页快捷方式
    错误:没有为扩展名“.html”注册的生成提供程序。
    【转载】错误 CS0016: 未能写入输出文件“c:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files/.........dll”--“拒绝访问。 ”
    [转载]ASP.NET对路径"xxxxx"的访问被拒绝的解决方法小结
    [转载]ASP.NET对路径"xxxxx"的访问被拒绝的解决方法小结
    [转载]AFX_MANAGE_STATE关于资源切换
    OD鲜为人知的小技巧--搜索通配符(关键字)
    【转载】汇编跳转指令集
  • 原文地址:https://www.cnblogs.com/mguo/p/3024294.html
Copyright © 2011-2022 走看看