拖拽碰撞效果最终版

拖拽碰撞效果最终版,没准还有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.mzph.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