标签:style blog http io ar sp on div 2014
本人刚学JS,还很菜,在这里做了一个简单的拖拽效果,如图:

废话就不多说了,直接上代码吧!
html代码就一句话
<div id="box" class="box"></div>
JS代码:
  var oBox=document.getElementById(‘box‘);
		  var disX,disY;
		  oBox.onmousedown=function(ev){
			    var oEvent=ev||event;
			    disX=oEvent.clientX-oBox.offsetLeft;
			    disY=oEvent.clientY-oBox.offsetTop;
			    var oNewDiv=oBox.cloneNode(true);
			    oNewDiv.style.opacity=0.5;
			    oNewDiv.style.filter=‘alpha(opactiy:50)‘;
			    oNewDiv.style.left=oBox.offsetLeft+‘px‘;
			    oNewDiv.style.top=oBox.offsetTop+‘px‘;
			    document.body.appendChild(oNewDiv);
			    document.onmousemove=function(ev){
				      var oEvent=ev||event;
				      oNewDiv.style.left=oEvent.clientX-disX+‘px‘;
				      oNewDiv.style.top=oEvent.clientY-disY+‘px‘;
};
			    document.onmouseup=function(){
				      document.onmousemove=document.onmouseup=null;
				      oBox.style.left=oNewDiv.offsetLeft+‘px‘;
				      oBox.style.top=oNewDiv.offsetTop+‘px‘;
				      document.body.removeChild(oNewDiv);
				      oBox.releaseCapture && oBox.releaseCapture();
			    };
			    oBox.setCapture && oBox.setCapture();
			    return false;
		  }
我自己理解的拖拽的原理:
1,在鼠标按下的时候克隆一个新的div
2,按下鼠标的时候拖动克隆的div,主要是改变克隆div的left值 和top 值
3,在鼠标抬起的时候放下克隆的div,并且让之间的那个div的left值和top值与克隆的div的left 值和top值一致,就把之间的div拖到了这个位置,然后删除掉克隆的div
4,为了防止页面中有文字或者别的东西,需要阻止一下默认事件oBox.setCapture && oBox.setCapture();return false;
这个只是我自己的理解,理解还不是很深刻,如果有什么不对的地方,还请大家多指教!
标签:style blog http io ar sp on div 2014
原文地址:http://www.cnblogs.com/wujidns/p/4109236.html