本人闲来无事又重温了一下原生js 发现之前的很多知识都记得很不牢固,之所以这样还是练习不够 ,所以找了一些视频又进行了一些学习。(基础才是王道)
实现拖拽的布局
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
<style>
#div1 {width:200px; height:200px; background:yellow; position:absolute;}
#div2 {width:200px; height:200px; background:green; position:absolute;}
</style>
<script src="demo.js"></script>
<script src="LimitDrag.js"></script>
<script>
window.οnlοad=function ()
{
new Drag('div1');
new LimitDrag('div2');
};
</script>
</head>
<body>
<div id="div1">普通拖拽</div>
<div id="div2">限制范围</div>
</body>
</html>
实现拖拽的方法:
function Drag(id)
{
var _this=this;
this.disX=0;
this.disY=0;
this.oDiv=document.getElementById(id);
this.oDiv.οnmοusedοwn=function (ev)
{
_this.fnDown(ev);
return false;
};
};
Drag.prototype.fnDown=function (ev)
{
var _this=this;
var oEvent=ev||event;
this.disX=oEvent.clientX-this.oDiv.offsetLeft;
this.disY=oEvent.clientY-this.oDiv.offsetTop;
document.οnmοusemοve=function (ev)
{
_this.fnMove(ev);
};
document.οnmοuseup=function ()
{
_this.fnUp();
};
};
Drag.prototype.fnMove=function (ev)
{
var oEvent=ev||event;
this.oDiv.style.left=oEvent.clientX-this.disX+'px';
this.oDiv.style.top=oEvent.clientY-this.disY+'px';
};
Drag.prototype.fnUp=function ()
{
document.οnmοusemοve=null;
document.οnmοuseup=null;
};