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

 更新时间:2013年06月05日 00:40:51   作者:  
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 id="main">
<div style="left:100px;top:100px;background:#fc9;" onmousedown="$(this,event)">1</div>
<div style="left:400px;top:100px;background:#9cf;" onmousedown="$(this,event)">2</div>
<div style="left:700px;top:100px;background:#f9c;" onmousedown="$(this,event)">3</div>
<div style="left:100px;top:300px;background:#9fc;" onmousedown="$(this,event)">4</div>
<div style="left:400px;top:300px;background:#c9f;" onmousedown="$(this,event)">5</div>
<div style="left:700px;top:300px;background:#cf9;" 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 id="test"></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需再刷新一下页面才能执行]

相关文章

  • Typescript的三种运行方式(小结)

    Typescript的三种运行方式(小结)

    这篇文章主要介绍了Typescript的三种运行方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • js实现下拉框选择要显示图片的方法

    js实现下拉框选择要显示图片的方法

    这篇文章主要介绍了js实现下拉框选择要显示图片的方法,涉及针对js操作select的技巧,非常具有实用价值,需要的朋友可以参考下
    2015-02-02
  • js形成页面的一种遮罩效果实例代码

    js形成页面的一种遮罩效果实例代码

    这篇文章主要介绍了js形成页面的一种遮罩效果实例代码,有需要的朋友可以参考一下
    2014-01-01
  • 详解嵌套命名空间在TypeScript中如何应用

    详解嵌套命名空间在TypeScript中如何应用

    命名空间是TypeScript中非常有用的概念,可以帮助我们组织和管理代码,避免命名冲突,下面小编就来和大家聊聊嵌套命名空间在TypeScript中是如何应用的吧
    2023-06-06
  • 使用clipboard.js库实现复制剪切功能

    使用clipboard.js库实现复制剪切功能

    这篇文章介绍了clipboard.js实现复制功能的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • 微信小程序h5页面跳转小程序的超详细讲解

    微信小程序h5页面跳转小程序的超详细讲解

    开发中涉及到一个需求,就是从一个预约票购买的页面需要跳转到 小程序,下面这篇文章主要给大家介绍了关于微信小程序h5页面跳转小程序的超详细讲解,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-02-02
  • JavaScript中this指向的最全总结

    JavaScript中this指向的最全总结

    前端的初学者在学习Javascript中this指向的时候经常都会一头雾水,尤其是在ES6箭头函数出现之前,所以本篇文章主要是介绍和总结了各种情况下的this指向,希望对大家有所帮助
    2023-12-12
  • 一文带你搞懂面试率超高的JS事件循环

    一文带你搞懂面试率超高的JS事件循环

    事件循环是 JavaScript 中一个非常重要的概念,下面就来看看浏览器和 Node.js 中的事件循环的原理,以及两者之间的差异,感兴趣的可以了解一下
    2022-10-10
  • 微信小程序实现选项卡的简单实例

    微信小程序实现选项卡的简单实例

    这篇文章主要介绍了微信小程序实现选项卡的简单实例,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-07-07
  • 在实例中重学JavaScript事件循环

    在实例中重学JavaScript事件循环

    这篇文章主要介绍了在实例中重学JavaScript事件循环,帮助大家更好的理解和学习JavaScript,感兴趣的朋友可以了解下
    2020-12-12

最新评论