拖拽碰撞效果最終版

拖拽碰撞效果最終版,沒準還有bug,不過現在在各個瀏覽器下效果是對的,代碼需要精簡一些,以后有時間了在弄吧,現在先不理了,感冒了,沒有心情整理

<!DOCTYPE HTML>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<title>可拖拽的照片墻</title>
<style type="text/css">
html body {margin:0;
}
#wrap {list-style:none;padding:0;margin:30px auto;width:670px;position:relative;zoom:1;
}
.clearfix:after {content:'';height:0;clear:both;display:block;visibility:hidden;
}
#wrap div{float:left;margin:10px;z-index:1;border:1px solid #fff;_display:inline;
}
#wrap div img{width:200px;height:150px;vertical-align:bottom;
}
#wrap div.active {border:1px dashed red;
}
</style>
</head>
<body>
<div id="wrap" class='clearfix'><div><img src="http://pingfan1990.sinaapp.com/javacript/dargimg/1.jpg" /></div><div><img src="http://pingfan1990.sinaapp.com/javacript/dargimg/2.jpg" /></div><div><img src="http://pingfan1990.sinaapp.com/javacript/dargimg/3.jpg" /></div><div><img src="http://pingfan1990.sinaapp.com/javacript/dargimg/4.jpg" /></div><div><img src="http://pingfan1990.sinaapp.com/javacript/dargimg/5.jpg" /></div><div><img src="http://pingfan1990.sinaapp.com/javacript/dargimg/6.jpg" /></div><div><img src="http://pingfan1990.sinaapp.com/javacript/dargimg/7.jpg" /></div><div><img src="http://pingfan1990.sinaapp.com/javacript/dargimg/8.jpg" /></div><div><img src="http://pingfan1990.sinaapp.com/javacript/dargimg/9.jpg" /></div>
</div>
<script type="text/javascript">
var o=document.getElementById("wrap");
var arr=o.getElementsByTagName("div");
var ind=2;
for(var i=arr.length-1;i>=0;i--){arr[i].style.left=arr[i].offsetLeft+"px";arr[i].style.top=arr[i].offsetTop+"px";    arr[i].style.position="absolute";arr[i].style.margin=0;m(arr[i])
}//拖動和各種判斷
function m(obj){var tar=null;obj.onmousedown=function(e){if(obj.setCapture){obj.setCapture();}var e=e||event;ind++;var aa=[obj.offsetLeft,obj.offsetTop];var disX=e.clientX-obj.offsetLeft;var disY=e.clientY-obj.offsetTop;this.style.zIndex=ind;if(obj.setCapture){obj.setCapture}document.onmousemove=function(e){var e=e||event;obj.style.left=e.clientX-disX+"px";obj.style.top=e.clientY-disY+"px";var s=siblings(obj);var mind=9999999;var num=-1;for(var i=0;i<s.length;i++){s[i].className='';if(c(obj,s[i])){var dis=distance(obj,s[i]);if(mind>dis){mind=dis;num=i;for(j=0;j<siblings(obj).length;j++){siblings(obj)[j].className='';    }s[num].className="active";}}tar=s[num]}if(e.stopPropagation) {e.stopPropagation();  }else{  e.cancelBubble = true;}}document.onmouseup=function(){if(obj.releaseCapture){obj.releaseCapture();}if(tar){tar.className='';}exchangePosition(obj,tar,aa);tar=null;document.onmousemove=null;document.onmouseup=null;}return false;}
}function exchangePosition(a,b,x){if(b){move(a,{left:b.offsetLeft,top:b.offsetTop});move(b,{left:x[0],top:x[1]});}else{move(a,{left:x[0],top:x[1]})}
}//求兩個Div之間的距離
function distance(x,y){var l=x.offsetLeft;var t=x.offsetTop;var ll=y.offsetLeft;var tt=y.offsetTop;var dis=Math.sqrt((l-ll)*(l-ll)+(t-tt)*(t-tt));return dis
}//碰撞檢測方法
function c(x,y){var l=x.offsetLeft;var r=l+x.offsetWidth;var t=x.offsetTop;var b=t+x.offsetHeight;var ll=y.offsetLeft;var rr=ll+y.offsetWidth;var tt=y.offsetTop;var bb=tt+y.offsetHeight;if(r<ll || b<tt || l>rr || t>bb){return false;}else{return true;}    
}function siblings(obj){return preall(obj).concat(nextall(obj))
}function preall(obj){var arr=[];var o=obj.previousSibling;while(o){if(o.nodeType==1){arr.unshift(o);}o=o.previousSibling;}return arr;
}function nextall(obj){var arr=[];var o=obj.nextSibling;while(o){if(o.nodeType==1){arr.push(o);}o=o.nextSibling;}return arr;    
}function move(obj,json,fn){    clearInterval(obj.timer)obj.timer=setInterval(function(){obj.bstop=true;for(i in json){var pos=parseInt(getcss(obj,i));var speed=pos>json[i]?Math.floor(((json[i]-pos)/5)): Math.ceil(((json[i]-pos)/5));obj.style[i]=speed+pos+"px";if(parseInt(getcss(obj,i))!=json[i]){obj.bstop=false;}}if(obj.bstop){clearInterval(obj.timer);fn && fn();}},30)
}function getcss(obj,attr){return (obj.currentStyle||getComputedStyle(obj, false))[attr];
}</script>

?

轉載于:https://www.cnblogs.com/busicu/p/3977231.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/376655.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/376655.shtml
英文地址,請注明出處:http://en.pswp.cn/news/376655.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Python 如何利用函數修改函數外list?

#在函數內修改列表的時候&#xff0c;在列表后面加上[:]&#xff0c;無論幾維列表均可。 def foo(listA):listA[:] [1,2,3] def foo2(listB):listB [1,2,3] listA [4,5,6] listB [4,5,6] foo(listA) foo2(listB) print listA #result: [1,2,3] print listB #result: [4,5,6…

圖片壓縮android bitmap compress(圖片壓縮)

本文純屬個人見解&#xff0c;是對前面學習的總結&#xff0c;如有描述不正確的地方還請高手指正~ 有些場景中&#xff0c;須要照相并且上傳到服務&#xff0c;但是由于圖片的巨細太大&#xff0c;那么就 上傳就 會很慢(在有些網絡情況下)&#xff0c;而且很耗流量&#xff0c;…

linux進程間通信快速入門【一】:管道編程

介紹 管道本質上就是一個文件&#xff0c;前面的進程以寫方式打開文件&#xff0c;后面的進程以讀方式打開。這樣前面寫完后面讀&#xff0c;于是就實現了通信。雖然實現形態上是文件&#xff0c;但是管道本身并不占用磁盤或者其他外部存儲的空間。在Linux的實現上&#xff0c;…

返回長度hdu 1518 square

查了好多資料&#xff0c;發現還是不全&#xff0c;干脆自己整理吧&#xff0c;至少保證在我的做法正確的&#xff0c;以免誤導讀者&#xff0c;也是給自己做個記載吧&#xff01; 題目的意思是比較明顯的&#xff0c;就是當初給你m根木棒&#xff0c;當初讓你判斷利用這些木棒…

POJ 3233 Matrix Power Series 矩陣快速冪 + 二分

題意&#xff1a;求矩陣的次方和 解題思路&#xff1a;最容易想到方法就是兩次二分因為 我們可以把一段 A^1 A^2 .......A^K 變成 A^1 ..A^(K/2) ( A^1 ..A^(K/2))*(A^(k/2)) 當k 為奇數的時候 或者 A^1 ..A^(K/2) ( A^1 ..A^(K/2))*(A^(k/2)) A^K 當K 為偶數的時候…

時間序列進行分析的一些手法以及代碼實現(移動平均、指數平滑、SARIMA模型、時間序列的(非)線性模型)

文章目錄1、移動平均moving average方法weighted average方法2、指數平滑單指數平滑 exponential_smoothing雙指數平滑三指數平滑 Triple exponential smoothing3、平穩性以及時間序列建模SARIMA模型4、時間序列的&#xff08;非&#xff09;線性模型時間序列的滯后值使用線性回…

政權組織形式

神馬國家結構、政權組織形式的 現在我比較明確的是英國的政權組織形式是式君主立憲制、美國是總統制、中國是人民代表大會制。 目前,世界各國采用的國家結構可分為單一制和復合制兩大類。其中&#xff0c;復合制國家結構形式主要包括聯邦制和邦聯制兩種類型。英國、法國、意大利…

三大平衡樹(Treap + Splay + SBT)總結+模板

Treap樹 核心是 利用隨機數的二叉排序樹的各種操作復雜度平均為O(lgn) Treap模板&#xff1a; #include <cstdio> #include <cstring> #include <ctime> #include <iostream> #include <algorithm> #include <cstdlib> #include <cmath…

mysqld進程 ut_delay 占用率過高

采用性能分析工具perf top -p mysqld進程 在測試mysql數據庫時&#xff0c;用perf top如果看到熱點函數是ut_delay或者_raw_spin_lock的話&#xff0c;說明鎖爭用比較嚴重。 ut_delay這是innodb的一個自旋瑣。也就是說&#xff0c;在這里由于鎖等待&#xff0c;innodb不停地在…

TClientDataSet使用要點

TClientDataSet控件繼承自TDataSet&#xff0c;其數據存儲文件格式擴展名為 .cds&#xff0c;是基于文件型數據存儲和操作的控件。該控件封裝了對數據進行操作處理的接口和功能&#xff0c;而本身并不依賴上述幾種數據庫驅動程序&#xff0c;基本上能滿足單機"瘦"數據…

滑動窗口在重構數據集的作用

step1&#xff1a;使用滑動窗口重構數據集 給定時間序列數據集的數字序列&#xff0c;我們可以將數據重構為看起來像監督學習問題。 我們可以通過使用以前的時間步作為輸入變量并使用下一個時間步作為輸出變量來做到這一點。 通過觀察重構后的數據集與原本的時間序列&…

sliverlight - Unhandled Error in Silverlight Application錯誤

使用firebug控制臺輸出錯誤&#xff1a; Unhandled Error in Silverlight Application 查詢“GetFlow_Process”的 Load 操作失敗。遠程服務器返回了錯誤: NotFound。 位于 System.ServiceModel.DomainServices.Client.OperationBase.Complete(Exception error) 位于 System.S…

前向驗證對于模型的更新作用

首先&#xff0c;讓我們看一個小的單變量時間序列數據&#xff0c;我們將用作上下文來理解這三種回測方法&#xff1a;太陽黑子數據集。該數據集描述了剛剛超過 230 年&#xff08;1749-1983 年&#xff09;觀察到的太陽黑子數量的每月計數。 數據集顯示了季節之間差異很大的…

2014年9月21日_隨筆,jdic,ETL,groovy,Nutz好多東西想學

&#xff08;1&#xff09;老媽十一要回老家&#xff0c;才突然發現買票好難啊。有親朋很重要 &#xff08;2&#xff09;這周我做了什么。jdic,ETL,groovy, Nutz好多東西想學。 Nutz開發成員專訪、Nutz優酷視頻(演講)、Nutz 入門教程、 &#xff08;3&#xff09;想改變&#…

PHP-面向對象(八)

1、多態的介紹與優勢 多態性是繼抽象和繼承后&#xff0c;面向對象語言的第三個特征。從字面上理解&#xff0c;多態的意思是“多種形態”&#xff0c;簡單來說&#xff0c;多態是具有表現多種形態的能力的特征&#xff0c;在OO中是指“語言具有根據對象的類型以不同方式處理。…

雙指數平滑中參數對于預測模型的影響

先看看α 在β一致的情況下&#xff0c;α越小&#xff0c;模型越滯后。 再看看β 在α一致的情況下&#xff0c;β越大&#xff0c;模型對于趨勢的預測更敏銳。

SQL 性能不佳的幾個原因

SQL 性能不佳的幾個原因 ?不準確的統計數據?差勁的索引?差勁的查詢設計 ?差勁的執行計劃&#xff0c;通常是由不正確的參數引起的?過度阻塞和死鎖 ?非基于集合的操作?不良數據庫設計 ?過度碎片 ?不能重復使用執行計劃 ?查詢頻繁重編譯 ?不當使用游標 ?數據庫日志的…

分頁查詢

分頁查詢算是比較常用的一個查詢了在DAO層主要是查兩個數據第一個總條數第二個要查詢起始記錄數到查詢的條數當第一次點擊查詢時候(非下一頁時Page類里面預設的就是 index就是0 pageSize是預設值當點擊下一頁的時候 index 和 pageSize帶的就是頁面上面給的值了分頁的頁面一般的…

TypeError: Object of type ‘datetime‘ is not JSON serializable

python中這個錯誤的原因是json.dumps無法對字典中的datetime時間格式數據進行轉化&#xff0c;dumps的原功能是將dict轉化為str格式&#xff0c;不支持轉化時間. 所以請這樣使用&#xff1a; json.dumps(response_data, defaultstr)

oracle問題

ORA-01031: insufficient privileges 用戶沒有權限&#xff0c;給它賦予角色轉載于:https://www.cnblogs.com/50614090/p/3986880.html