javascript实现拖动层效果代码(符合标准且兼容IE

javascript实现拖动层,原理很简单,就是根据鼠标的位置实时设置层的left和top

实例代码一见:

复制代码 代码如下:


<!DOCTYPE HTML>
<html>
<head>
<style type="text/css">
#main div{position:absolute;width:220px;height:150px;border:1px solid #999;}
</style>
<script type="text/javascript">
var a;
document.onmouseup = function() {
if (!a) return;
a = "";
};
document.onmousemove = function(d) {
if (!a) return;
d=d||event;
a.style.left = (d.clientX - b) + "px";
a.style.top = (d.clientY - c) + "px";
};
function $(o, e) {
a = o;
b = e.clientX - parseInt(a.style.left);
c = e.clientY - parseInt(a.style.top);
}
</script>
</head>
<body>
<div>
<div onmousedown="$(this,event)">1</div>
<div onmousedown="$(this,event)">2</div>
<div onmousedown="$(this,event)">3</div>
<div onmousedown="$(this,event)">4</div>
<div onmousedown="$(this,event)">5</div>
<div onmousedown="$(this,event)">6</div>
</div>
</body>
</html>


效果:


[Ctrl+A 全选 注:引入外部Js需再刷新一下页面才能执行]



实例代码二见:

复制代码 代码如下:


<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title>
<style type="text/css">
#test{width:200px; height:200px; background:pink; cursor:move; position:absolute; left:100px; top:100px}
</style>
</head>
<body>
<div></div>
<script type="text/javascript">
var obj=document.getElementById("test");
var b;
obj.onmousedown=function(e){
b=true;
var divLeft=parseFloat(window.getComputedStyle?window.getComputedStyle(obj,null).left:obj.currentStyle.left);
var divTop=parseFloat(window.getComputedStyle?window.getComputedStyle(obj,null).top:obj.currentStyle.top);
var e=e||event;
var divX=e.clientX-divLeft; //计算鼠标和div边框的距离
var divY=e.clientY-divTop;
document.onmousemove=function(e){
if(b){
var e=e||event; //兼容IE8及以下
obj.style.left=e.clientX-divX+"px";
obj.style.top=e.clientY-divY+"px";
}
}
}
document.onmouseup=function(){
b=false;
}
</script>
</body>
</html>



效果:


[Ctrl+A 全选 注:引入外部Js需再刷新一下页面才能执行]



实例代码三见(拖动把柄):


[Ctrl+A 全选 注:引入外部Js需再刷新一下页面才能执行]

您可能感兴趣的文章:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wdgdfz.html