分享html5的一个拖拽手法

简介:   就是这样的效果:拖拽之前      之后:        上代码: html5 drag and drop *[draggable=true] { -moz-us...

  就是这样的效果:拖拽之前

  

    之后:

      

  上代码:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <title> html5 drag and drop</title>
        <style>
            *[draggable=true] {
                -moz-user-select:none;
                -khtml-user-drag: element;
                cursor: move;
            }
            *:-khtml-drag {
                background-color: rgba(238,238,238, 0.5);
            }
            a {
                text-decoration: none;
                color: #000;
                width:120px;
                border: 3px dashed #999;
                padding: 10px;
                display:inline-block;
                transition: all 1s;
                position:absolute ;
                top:10px;
            }

            .container {
                position:relative;
            }
            a.move {
                -webkit-transform:scale3d( 1.1, 1.1, 1.1 );
            }
            a:hover:after {
                content: ' (drag me)';
                color: green }

        </style>
    </head>
    <body>
        <div class="container">
            <a draggable="true"  id="a1" style='left:0px;'>one</a>
            <a draggable="true"  id="a2" style='left:160px;'>two</a>
            <a draggable="true"  id="a3" style='left:320px;'>three</a>
            <a draggable="true"  id="a4" style='left:480px;'>four</a>
            <a draggable="true"  id="a5" style='left:640px;'>five</a>
        </div>
        <script src="http://code.jquery.com/jquery-2.0.0.js"></script>
        <script>
            var origin, is_moving = false;

            $(".container").find("a").on("drop",
            function(e) {
                var origin_pos = $(origin).position();
                var target_pos = $(e.target).position();

                $(origin).addClass("move").animate(target_pos, "fast",
                    function() {
                        console.log(this);
                        $(this).removeClass("move");
                    });
                
                $(e.target).addClass("move").animate(origin_pos, "fast",
                function() {
                    $(this).removeClass("move");
                });

            }).on("dragstart",
            function(e) {
                if (is_moving) {
                    return false;
                }
                is_moving = true;
           
                e.originalEvent.dataTransfer.effectAllowed = 'move';
                origin = this;

            }).on("dragover",
            function(e) {
                if (e.preventDefault) e.preventDefault(); //
                is_moving = false;
                e.originalEvent.dataTransfer.dropEffect = 'move'; //
            });
        </script>
    </body>
</html>

每日一句:I always knew looking back on the tears would make me laugh, but I never knew looking back on the laughs would make me cry.

翻译:我知道再回首时,那些眼泪想来可笑;却不知再回眸时,那些欢声笑语也能叫我潸然泪下。

目录
相关文章
|
2月前
|
小程序 数据可视化 开发工具
HTML我帮您打造拖拽可视化的WEUI小程序工具
HTML我帮您打造拖拽可视化的WEUI小程序工具
37 0
|
7月前
|
移动开发 前端开发 应用服务中间件
前端——html拖拽原理
前端——html拖拽原理
68 0
|
移动开发 JavaScript API
基于html5拖拽api实现列表的拖拽排序
基于html5拖拽api实现列表的拖拽排序
70 0
|
Web App开发 移动开发 前端开发
html5 h5 draggable的理解,及其实现拖拽功能
事件是由行为触发的,但是一个行为不止可以触发一个事件,可以触发多个事件
html5 h5 draggable的理解,及其实现拖拽功能
|
移动开发 JSON JavaScript
|
移动开发 HTML5 JavaScript
|
Web App开发 移动开发 JavaScript
【javascript】谈谈HTML5: Web-Worker、canvas、indexedDB、拖拽事件
前言:作为一名Web开发者,可能你并没有对这个“H5”这个字眼投入太多的关注,但实际上它早已不知不觉进入到你的开发中,并且总有一天会让你不得不正视它,了解它并运用它   打个比方:《海贼王》中的主角路飞在“顶上战争两年前”,会在一些危急关头“不经意”地使用霸王色霸气,但对”霸气“的结构体系和具体运用都不太了解,这让他在香波地群岛等诸多重大战役中大吃苦头。
1379 0
|
移动开发 HTML5 前端开发
一步步用HTML5动手写个图片拖拽上传预览组件
详情参考:一步步用HTML5动手写个图片上传预览组件H5中拖拽事件有: [ - ] DragDrop:拖放完成,也就是鼠标拖入对象并在拖放区域释放。 [ - ] DragEnter :拖放进入,也就是鼠标拖放对象进入拖放区域。
819 0