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

    html5规定元素是否可拖动的属性draggable

    黄舟黄舟2017-11-03 10:52:34原创3354

    实例

    一个可拖动的段落:

    <p draggable="true">这是一个可拖动的段落。</p>

    浏览器支持


    IE

    Firefox

    Chrome

    Safari

    Opera


    Internet Explorer 9+, Firefox, Opera, Chrome, and Safari 支持 draggable 属性。

    注释:Internet Explorer 8 以及更早的版本,不支持 draggable 属性。

    定义和用法

    draggable 属性规定元素是否可拖动。

    提示:链接和图像默认是可拖动的。

    提示:draggable 属性常用在拖放操作中。请在我们的拖放教程中学习更多内容。

    HTML 4.01 与 HTML5 之间的差异

    draggable 属性是 HTML5 中的新属性。

    语法

    <element draggable="true|false|auto">

    属性值

    描述
    true规定元素的可拖动的。
    false规定元素不可拖动。
    auto使用浏览器的默认行为。

    实例:

    <!DOCTYPE html>
    <html class="no-js">
    
        <head>
            <meta charset="utf-8">
            <title>HTML5-draggable(拖放)</title>
            <style type="text/css">
                #div1, #div2 {float:left; width:100px; height:35px; margin:10px;padding:10px;border:1px solid #aaaaaa;}
            </style>
            <script src="js/modernizr.js" type="text/javascript" charset="utf-8"></script>
            <script type="text/javascript">
                /*
                 * 虽然已经设定了img元素可被拖动,但是浏览器默认地,无法将数据/元素放置到其他元素中。
                 * 如果有需要设置某些元素可接受被拖动元素,则要阻止它的默认行为,
                 * 这要通过设置该接收元素的ondragover 事件,调用event.preventDefault() 方法
                 */
                function allowDrop(ev) {
                    ev.preventDefault(); //阻止默认行为
                    
                    //ev.target.id
                    //此处ev.target是接收元素,通过事件被绑定在哪个元素即可区分
                }
    
                /*
                 * 当该img元素被拖动时,会触发一个ondragstart 事件,该事件调用了一个方法drag(event)。
                 */
                function drag(ev) {
                    //ev.dataTransfer.setData() 方法设置被拖数据的数据类型(Text)和值(被拖元素id),
                    //该方法将被拖动元素的id存储到事件的dataTransfer对象内,ev.dataTransfer.getData()可将该元素取出。
                    //此处ev.target是被拖动元素
                    ev.dataTransfer.setData("Text", ev.target.id); 
                }
    
                /*
                 * 当被拖元素移动到接收元素,
                 * 松开鼠标时(即被拖元素放置在接收元素内时)会出发ondrop事件
                 */
                function drop(ev) {
                    ev.preventDefault(); //阻止默认行为
                    var data = ev.dataTransfer.getData("Text"); //将被拖动元素id取出
                    ev.target.appendChild(document.getElementById(data)); //将被拖动元素添加到接收元素尾部
                }
            </script>
        </head>
    
        <body>
    
            <div id="div1" ondrop="drop(event)" ondragover="allowDrop(event)">
                <!--为了使元素可拖动,把 draggable 属性设置为 true--> 
                <img src="http://www.w3school.com.cn/i/w3school_logo_black.gif" draggable="true" ondragstart="drag(event)" id="drag1" />
            </div>
            
            <div id="div2" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
    
        </body>
    
    </html>

    }}@}FBL}`4F~`D}_R7TW_PS.png

    大前端成长进阶课程:进入学习

    ){TK1LR}PFGTM_IEHL083Y3.png

    以上就是html5规定元素是否可拖动的属性draggable的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

    前端(VUE)零基础到就业课程:点击学习

    清晰的学习路线+老师随时辅导答疑

    快捷开发Web应用及小程序:点击使用

    支持亿级表,高并发,自动生成可视化后台。

    专题推荐:html5 h5 拖动
    上一篇:html5存储页面或应用程序的私有自定义数据的data-* 属性 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• 避免常见的六种HTML5错误用法 (5-6)• 上周朋友圈被传奇世界H5破1500流水刷屏了,求千万爆款H5游戏背后的成功秘诀?• Html5 Canvas初探学习笔记(13) -图片变换• 分享HTML5虚拟键盘出现挡住输入框的解决办法• 关于HTML5的安全问题开发人员需要牢记的_html5教程技巧
    1/1

    PHP中文网