{"id":1615,"date":"2017-03-21T23:30:39","date_gmt":"2017-03-21T15:30:39","guid":{"rendered":"http:\/\/www.qdabc.cn\/?p=1615"},"modified":"2017-03-21T23:30:39","modified_gmt":"2017-03-21T15:30:39","slug":"%e4%b9%9d%e5%ae%ab%e6%a0%bc%e6%8b%96%e6%8b%bd%e6%95%88%e6%9e%9c","status":"publish","type":"post","link":"http:\/\/www.qdabc.cn\/?p=1615","title":{"rendered":"\u4e5d\u5bab\u683c\u62d6\u62fd\u6548\u679c"},"content":{"rendered":"<pre>&lt;!DOCTYPE html&gt;\r\n&lt;html lang=\"en-US\"&gt;\r\n&lt;head&gt;\r\n    &lt;meta charset=\"UTF-8\"&gt;\r\n    &lt;title&gt;\u968f\u4fbf\u4f60\u62fd&lt;\/title&gt;\r\n    &lt;style type=\"text\/css\"&gt;\r\n        html body {\r\n            margin: 0;\r\n        }\r\n\r\n        .wraper {\r\n            width: 1000px;\r\n            heigth: 1000px;\r\n            margin: 0 auto;\r\n        }\r\n\r\n        .block {\r\n            float: left;\r\n            margin: 10px;\r\n            width: 200px;\r\n            height: 200px;\r\n        }\r\n\r\n        .blue {\r\n            background: #3bafda;\r\n        }\r\n\r\n        .red {\r\n            background: #da4453;\r\n        }\r\n    &lt;\/style&gt;\r\n&lt;\/head&gt;\r\n&lt;body&gt;\r\n    &lt;div class=\"wraper\" id=\"wraper\"&gt;\r\n        &lt;div class=\"block red\"&gt;&lt;\/div&gt;\r\n        &lt;div class=\"block blue\"&gt;&lt;\/div&gt;\r\n        &lt;div class=\"block red\"&gt;&lt;\/div&gt;\r\n        &lt;div class=\"block blue\"&gt;&lt;\/div&gt;\r\n        &lt;div class=\"block red\"&gt;&lt;\/div&gt;\r\n        &lt;div class=\"block blue\"&gt;&lt;\/div&gt;\r\n\t\t&lt;div class=\"block red\"&gt;&lt;\/div&gt;\r\n        &lt;div class=\"block blue\"&gt;&lt;\/div&gt;\r\n        &lt;div class=\"block red\"&gt;&lt;\/div&gt;\r\n        &lt;div class=\"block blue\"&gt;&lt;\/div&gt;\r\n        &lt;div class=\"block red\"&gt;&lt;\/div&gt;\r\n        &lt;div class=\"block blue\"&gt;&lt;\/div&gt;\r\n    &lt;\/div&gt;\r\n    &lt;script type=\"text\/javascript\"&gt;\r\n        function drag(elem) {\r\n            this.elem = elem;\r\n            this.innit();\r\n            this.move();\r\n        }\r\n        drag.prototype = {\r\n            innit: function () {\r\n                var parent = this.elem.parentNode,\r\n\t\t\t\t\tlist = parent.children,\r\n\t\t\t\t\tpos=[];\r\n                parent.style.position = 'relative';\r\n                for (var i = list.length; i--;) {\r\n\t\t\t\t\tpos[i]={'left':list[i].offsetLeft,'top':list[i].offsetTop};\r\n                    list[i].style.left = list[i].offsetLeft + 'px';\r\n                    list[i].style.top = list[i].offsetTop + 'px';\r\n                    list[i].style.position = 'absolute';\r\n                };\r\n\t\t\t\tthis.pos=pos;\r\n                this.elems = list;\/\/\u5b58\u50a8\u5143\u7d20\u5217\u8868\r\n            },\r\n            stopPrevent: function (e) {\r\n                e = e || window.event;\r\n                if (e.preventDefault) {\r\n                    e.preventDefault();\r\n                    e.stopPropagation();\r\n                } else {\r\n                    e.returnValue = false;\r\n                    e.cancelBubble = true;\r\n                }\r\n            },\r\n            \/*\r\n\t\t\t\u68c0\u6d4b\u78b0\u649e\r\n\t\t\t@cause \u4e3b\u52a8\u5143\u7d20(\u5c31\u662f\u88ab\u62d6\u52a8\u7684\u90a3\u4e2a)\r\n\t\t\t@passive \u88ab\u52a8\u5143\u7d20(\u88ab\u649e\u7684\u90a3\u4e2a)\r\n\t\t\t*\/\r\n            collision: function (cause, passive) {\r\n                var ct = cause.offsetTop,\r\n\t\t\t\t\tcl = cause.offsetLeft,\r\n\t\t\t\t\tcb = ct + cause.offsetHeight,\r\n\t\t\t\t\tcr = cl + cause.offsetWidth;\r\n                var pt = passive.offsetTop,\r\n\t\t\t\t\tpl = passive.offsetLeft,\r\n\t\t\t\t\tpb = pt + passive.offsetHeight,\r\n\t\t\t\t\tpr = pl + passive.offsetWidth;\r\n                \/*\r\n\t\t\t\t@\u78b0\u649e\u539f\u7406\r\n\t\t\t\t\u4e3b\u52a8\u5143\u7d20 A \u88ab\u52a8\u5143\u7d20 B\r\n\t\t\t\tA.top &lt; B.bottom &amp;&amp;\r\n\t\t\t\tA.left &lt; B.right &amp;&amp;\r\n\t\t\t\tA.right &gt; B.left &amp;&amp;\r\n\t\t\t\tA.bottom &gt; B.top\r\n\t\t\t\t\u5f53\u8fd9\u4e9b\u6761\u4ef6\u5168\u90e8\u6210\u7acb\u65f6\uff0c\u4e24\u4e2a\u5143\u7d20\u5c31\u78b0\u649e\u4e86\r\n\t\t\t\t*\/\r\n                if (ct &lt; pb &amp;&amp; cl &lt; pr &amp;&amp; cb &gt; pt &amp;&amp; cr &gt; pl) {\r\n                    return true;\r\n                }\r\n                return false;\r\n            },\r\n            \/*\r\n\t\t\t\u6d4b\u91cf\u8ddd\u79bb\r\n\t\t\t@orgin \u6bd4\u8f83\u5143\u7d20\r\n\t\t\t@list  \u88ab\u6bd4\u8f83\u5143\u7d20\u5217\u8868\r\n\t\t\t*\/\r\n            meter: function (orgin, list) {\r\n                var ol = orgin.offsetLeft,\r\n\t\t\t\t\tot = orgin.offsetTop,\r\n\t\t\t\t\tmin_l = 99999999,\r\n\t\t\t\t\tmin_t = 99999999,\r\n\t\t\t\t\t_l = 0,\r\n\t\t\t\t\t_t = 0,\r\n\t\t\t\t\tresult = null;\r\n                for (var i in list) {\r\n                    _l = Math.abs(ol - list[i].offsetLeft);\r\n                    _t = Math.abs(ot - list[i].offsetTop);\r\n                    \/\/console.log(_l+\"  \"+_t);\r\n                    if (_l &lt; min_l || _t &lt; min_t) {\r\n                        \/\/console.log(\"if \"+_l+\"  \"+_t);\r\n                        min_l = _l;\r\n                        min_t = _t;\r\n                        result = list[i];\r\n                    }\r\n                }\r\n                return result;\r\n            },\r\n\t\t\t\/*\r\n\t\t\t@\u83b7\u53d6\u5143\u7d20\u5728\u5217\u8868\u4e2d\u6240\u5728\u7684\u4f4d\u7f6e\r\n\t\t\t*\/\r\n\t\t\tcurIndex:function(obj,list){\r\n\t\t\t\tvar list=list || [];\/\/\u4e3a\u4e86\u9632\u6b62list\u4e3a\u7a7a\u62a5\u9519\r\n\t\t\t\tfor(var i=0,len=list.length;i&lt;len;i++){\r\n\t\t\t\t\tif(obj==list[i]){\r\n\t\t\t\t\t\treturn i;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\treturn false;\r\n\t\t\t},\r\n\t\t\tgetStyle:function(obj,prop){\r\n\t\t\t\tif(obj.currentStyle){\r\n\t\t\t\t\t\/\/IE\u652f\u6301 currentStyle\r\n\t\t\t\t\treturn obj.currentStyle[prop];\r\n\t\t\t\t}else{\r\n\t\t\t\t\t\/\/chrome firefox \u652f\u6301 getComputedStyle\r\n\t\t\t\t\treturn getComputedStyle(obj,null)[prop];\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tstartMove:function(obj,style){\r\n\t\t\t\tvar getStyle=this.getStyle;\r\n\t\t\t\tclearInterval(obj.timer);\r\n\t\t\t\tobj.timer=setInterval(function(){\r\n\t\t\t\t\tobj.style.zIndex=99;\r\n\t\t\t\t\tvar bStop=true;\r\n\t\t\t\t\tfor(var prop in style){\r\n\t\t\t\t\t\t\/\/1\u53d6\u5f53\u524d\u6837\u5f0f\r\n\t\t\t\t\t\tvar cur=parseInt(getStyle(obj,prop));\r\n\t\t\t\t\t\t\/\/2\u7b97\u901f\u5ea6\r\n\t\t\t\t\t\tvar speed=(style[prop]-cur)\/8;\r\n\t\t\t\t\t\tspeed=speed&gt;0?Math.ceil(speed):Math.floor(speed);\r\n\t\t\t\t\t\t\/\/timer end\r\n\t\t\t\t\t\tif(cur!=style[prop]){\r\n\t\t\t\t\t\t\tbStop=false;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tobj.style[prop]=cur+speed+'px';\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(bStop){\r\n\t\t\t\t\t\tclearInterval(obj.timer);\r\n\t\t\t\t\t\tobj.style.zIndex=\"\";\r\n\t\t\t\t\t}\r\n\t\t\t\t},30)\r\n\t\t\t},\r\n            move: function (e) {\r\n                var element = this.elem,\r\n\t\t\t\t\tlists = this.elems,\r\n\t\t\t\t\tthat=this,\r\n\t\t\t\t\tresult = null,\r\n\t\t\t\t\tstartMove=this.startMove;\r\n\t\t\t\t\tstopPrevent = this.stopPrevent,\r\n\t\t\t\t\tcurIndex=this.curIndex,\r\n\t\t\t\t\tpos=this.pos;\r\n                collision = this.collision,\r\n                meter = this.meter;\r\n                element.onmousedown = function (e) {\r\n                    e = e || window.event;\r\n                    var mousex = e.x || e.pageX,\r\n\t\t\t\t\t\tmousey = e.y || e.pageY,\r\n\t\t\t\t\t\tmoveIndex=curIndex(element,lists),\r\n\t\t\t\t\t\tstyle = pos[moveIndex];\/\/\r\n\t\t\t\t\t\r\n                    element.style.zIndex = 99;\r\n                    stopPrevent(e);\r\n\t\t\t\t\t\r\n                    document.onmousemove = function (e) {\r\n                        e = e || window.event;\r\n                        var movex = e.x || e.pageX,\r\n\t\t\t\t\t\t\tmovey = e.y || e.pageY;\r\n                        stopPrevent(e);\r\n                        element.style.left = (movex - mousex + style['left']) + 'px';\r\n                        element.style.top = (movey - mousey + style['top']) + 'px';\r\n                        var zeroList = [];\/\/\u5b58\u50a8\u649e\u5230\u4e86\u51e0\u4e2a\u5143\u7d20\r\n                        for (var j = lists.length; j--;) lists[j].style.border = ''; \/\/\u53bb\u9664\u5143\u7d20\u5217\u8868\u4e2d\u6240\u6709\u7684\u8fb9\u6846\r\n                        for (var i = lists.length; i--;) {\r\n                            if (lists[i] != element) {\r\n                                if (collision(element, lists[i])) {\r\n                                    zeroList.push(lists[i]);\r\n                                }\r\n                            }\r\n                        };\r\n                        result = meter(element, zeroList);\r\n                    };\r\n                    document.onmouseup = function (e) {\r\n                        document.onmouseup = null,\r\n\t\t\t\t\t\tdocument.onmousemove = null;\r\n\t\t\t\t\t\tif (result) {\r\n\t\t\t\t\t\t\t\/\/\u5982\u679c\u78b0\u5230\u5143\u7d20\uff0c\u5219\u4ea4\u6362\u4f4d\u7f6e\r\n\t\t\t\t\t\t\tvar activeIndex=curIndex(result,lists);\r\n\t\t\t\t\t\t\tstartMove.call(that,element,pos[activeIndex]);\r\n\t\t\t\t\t\t\tstartMove.call(that,result,style);\r\n\t\t\t\t\t\t\t\/\/\u4ea4\u6362\u5b58\u50a8\u5b9a\u4f4d\u4fe1\u606f\r\n\t\t\t\t\t\t\tvar zeroData=pos[activeIndex];\r\n\t\t\t\t\t\t\tpos[activeIndex]=pos[moveIndex];\r\n\t\t\t\t\t\t\tpos[moveIndex]=zeroData;\r\n\t\t\t\t\t\t\t\r\n                        } else {\r\n\t\t\t\t\t\t\t\/\/\u5982\u679c\u6ca1\u6709\u649e\u5230\u4efb\u4f55\u5143\u7d20\uff0c\u5219\u8fd4\u56de\u539f\u70b9\r\n\t\t\t\t\t\t\t\/\/\u56e0\u4e3a\u51fd\u6570\u5728document.onmouseup \u4e2d\u6267\u884c\uff0c\u6240\u4ee5\u4f1a\u5bfc\u81f4this\u5728\u6267\u884cstartMove\u53d8\u6210window,\u800c\u4e0d\u662fdrag,\u6240\u4ee5\u4f7f\u7528\u4e86call\u65b9\u6cd5,\u6307\u5b9a\u4e86\u6267\u884c\u73af\u5883\u3002\r\n\t\t\t\t\t\t\tstartMove.call(that,element,style);\r\n                        }\r\n\t\t\t\t\t\telement.style.zIndex=\"\";\r\n                        stopPrevent(e);\r\n                    };\r\n                }\r\n            }\r\n        }\r\n\r\n        for (var i = $('wraper').children.length; i--;) {\r\n            new drag($('wraper').children[i]);\r\n        }\r\n        function $(id) {\r\n            return id ? document.getElementById(id) : null;\r\n        }\r\n    &lt;\/script&gt;\r\n&lt;\/body&gt;\r\n&lt;\/html&gt;<\/pre>\n<p class=\"post-copyright\">\u6b22\u8fce\u5206\u4eab\u672c\u6587\uff0c\u8f6c\u8f7d\u8bf7\u4fdd\u7559\u51fa\u5904\uff1a<a href=\"http:\/\/www.qdabc.cn\">\u524d\u7aefABC<\/a> &raquo; <a href=\"http:\/\/www.qdabc.cn\/?p=1615\">\u4e5d\u5bab\u683c\u62d6\u62fd\u6548\u679c<\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>&lt;!DOCTYPE html&gt; &lt;html lang=&#8221;en-US&#8221;&gt; &lt;head&gt; &lt;meta charset=&#8221;UTF-8&#8243;&gt; &lt;title&#038; [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[9,176],"_links":{"self":[{"href":"http:\/\/www.qdabc.cn\/index.php?rest_route=\/wp\/v2\/posts\/1615"}],"collection":[{"href":"http:\/\/www.qdabc.cn\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.qdabc.cn\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.qdabc.cn\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.qdabc.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1615"}],"version-history":[{"count":1,"href":"http:\/\/www.qdabc.cn\/index.php?rest_route=\/wp\/v2\/posts\/1615\/revisions"}],"predecessor-version":[{"id":1616,"href":"http:\/\/www.qdabc.cn\/index.php?rest_route=\/wp\/v2\/posts\/1615\/revisions\/1616"}],"wp:attachment":[{"href":"http:\/\/www.qdabc.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1615"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.qdabc.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1615"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.qdabc.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1615"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}