zoukankan      html  css  js  c++  java
  • HTML5:一个拖拽网页元素的例子

    关键字:HTML5, Drag&Drop, JavaScript, CSS

    运行环境:Chrome

        <!DOCTYPE html>
        <html>
        <head>
            <title>example</title>
            
            <style type="text/css">
                .main-area {
                    margin-left: 10%;
                    margin-right: 10%;
                    min-width: 600px;
                }
                
                ul {
                    padding-left: 0;
                    text-align:center;
                }
                
                li {
                    word-break: break-all;
                    display: inline-block;
                    width: 400px;
                    height: 200px;
                    margin: 3px;
                    border-radius: 3px;
                    box-shadow: 1px 1px 3px rgba(0, 0, 0, 1);
                }
            </style>
        </head>
        <body>
            <script>
                // on source element
                function dragstart (ev) {
                    ev.dataTransfer.effectAllowed = "move";
                    ev.dataTransfer.setData("srcId", ev.currentTarget.id);
                    ev.dataTransfer.setDragImage(ev.currentTarget, 0, 0);
                }
                function dragend(ev) {
                    ev.dataTransfer.clearData("srcId");
                }
    
                // on target element
                function dragover(ev) {
                    ev.preventDefault();
                }
                function drop(ev) {
                    var srcId = ev.dataTransfer.getData("srcId");
                    var srcObj = document.getElementById(srcId);
                    if(srcObj != ev.currentTarget){
                        var list = document.getElementById('list');
                        list.insertBefore(srcObj, ev.currentTarget);
                    }
                }
            </script>
            <div id='main-area'>
                <ul id='list'>
                    <li id='1' draggable="true" ondragstart="dragstart(event)" ondragend="dragend(event)" ondragover="dragover(event)" ondrop="drop(event)">
                        111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
                    </li><li id='2' draggable="true" ondragstart="dragstart(event)" ondragend="dragend(event)" ondragover="dragover(event)" ondrop="drop(event)">
                        222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222
                    </li><li id='3' draggable="true" ondragstart="dragstart(event)" ondragend="dragend(event)" ondragover="dragover(event)" ondrop="drop(event)">
                        333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333
                    </li><li id='4' draggable="true" ondragstart="dragstart(event)" ondragend="dragend(event)" ondragover="dragover(event)" ondrop="drop(event)">
                        444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444
                    </li>
                </ul>
            </div>
        </body>
        </html>

    注:如果每个li之间换行,将会有空格产生。参考问题:http://stackoverflow.com/questions/25520904/html5-reorder-the-children-li-of-ul-by-drag-and-drop-the-borders-between-li-el

  • 相关阅读:
    使用U盘做最官方纯净的高压缩级别的w10系统,享受急速5秒开机
    Nginx设置浏览器缓存
    --with-http_sub_module模块
    --with-http_random_index_module模块
    --with-http_stub_status_module模块
    Nginx常见问题
    secure_link_module模块
    nginx编译安装新模块
    使用Ubuntu搭建Web服务器
    [BJDCTF 2nd]假猪套天下第一
  • 原文地址:https://www.cnblogs.com/ldlchina/p/3958294.html
Copyright © 2011-2022 走看看