• 技术文章 >web前端 >H5教程

    小强的HTML5移动开发之路(16)——神奇的拖放功能

    2017-01-22 11:50:18原创560
    在智能手机发展飞速的现在拖放功能已经成为一种时尚,但是在我们的浏览器上是不是还缺少这种方便快捷的功能?在HTML5的新标准中就有关于拖放的标准,作为Html5标准的一部分,任何元素都可以被拖放。

    一、浏览器支持情况


    Internet Explorer 9、Firefox、Opera 12、Chrome 以及 Safari 5 支持拖放。


    注释:在 Safari 5.1.2 中不支持拖放。

    二、使用方法

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

    <img draggable="true" />

    然后,规定元素被拖动时,会发生什么


    让ondragstart属性调用一个函数,并给该函数返回一个拖动对象

    <img id="drag1" src="img_logo.gif" draggable="true"  
    ondragstart="drag(event)" width="336" height="69" />

    dataTransfer.setData() 方法设置被拖数据的数据类型和值:(我们将被拖动对象的id传给dataTransfer)

    function drag(ev)  
    {  
    <span style="white-space:pre">  </span>ev.dataTransfer.setData("Text",ev.target.id);  
    }

    放到何处 - ondragover


    ondragover 事件规定在何处放置被拖动的数据。

    默认地,无法将数据/元素放置到其他元素中。如果需要设置允许放置,我们必须阻止对元素的默认处理方式。

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

    event.preventDefault()

    当放置被拖数据时,会发生 drop 事件。

    在上面,ondrop 属性调用了一个函数,drop(event):

    function drop(ev)  
    {  
    <span style="white-space:pre">  </span>ev.preventDefault();  
    <span style="white-space:pre">  </span>var data=ev.dataTransfer.getData("Text");  
    <span style="white-space:pre">  </span>ev.target.appendChild(document.getElementById(data));  
    }

    代码解释:

    二、实例说明

    <!DOCTYPE HTML>  
    <html>  
        <head>  
            <script type="text/javascript">  
                //阻止对元素的默认处理方式  
                function allowDrop(ev)  
                {  
                    ev.preventDefault();  
                }  
                  
                //将被拖动对象的id传递给dataTransfer中间对象  
                function drag(ev)  
                {  
                    ev.dataTransfer.setData("Text",ev.target.id);  
                }  
                  
                //取得拖动对象id找到对象实例并用DOM模型添加到<div>里面  
                function drop(ev)  
                {  
                    ev.preventDefault();  
                    var data=ev.dataTransfer.getData("Text");  
                    ev.target.appendChild(document.getElementById(data));  
                }  
            </script>  
        </head>  
        <body>  
            <!--要被拖动到的地方-->  
            <div id="div1" ondrop="drop(event)"    
            ondragover="allowDrop(event)"    
            style="border:1px solid red;width:300px;height:200px;">  
            </div>  
            <!--要被拖动的对象-->  
            <img id="drag1" src="test.png" draggable="true"  
            ondragstart="drag(event)"/>  
      
        </body>  
    </html>

    728.gif

    以上就是 小强的HTML5移动开发之路(16)——神奇的拖放功能的内容,更多相关内容请关注PHP中文网(m.sbmmt.com)!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇: 小强的HTML5移动开发之路(15)——HTML5中的音频 下一篇: 小强的HTML5移动开发之路(17)——HTML5内联SVG
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【腾讯云】年中优惠,「专享618元」优惠券!• 开发人员所需要知道的HTML5性能分析面面观_html5教程技巧• HTML5 微格式和相关的属性名称_html5教程技巧• HTML5 的普及需要具备哪些因素?• 为什么html5将主宰在线视频?• Html5 Canvas初探学习笔记(3) -绘制样式和绘制文本
    1/1

    PHP中文网