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需再刷新一下页面才能执行]

相关文章

  • 简单实现轮播图效果的实例

    简单实现轮播图效果的实例

    下面小编就为大家带来一篇简单实现轮播图效果的实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-07-07
  • Angular 服务器端渲染缓存功能问题

    Angular 服务器端渲染缓存功能问题

    这篇文章主要介绍了Angular服务器端渲染缓存功能问题,内存缓存可用于应用程序本身的渲染页面和API请求。 两种使用场合都通过开发包@ngx-ssr或cache提供
    2022-06-06
  • JS实现定时页面弹出类似QQ新闻的提示框

    JS实现定时页面弹出类似QQ新闻的提示框

    类似QQ新闻的提示框要求页面每隔半小时弹出一次提示消息,下面有个不错的实现方法,感兴趣的朋友可以参考下
    2013-11-11
  • js常用方法、检查是否有特殊字符串、倒序截取字符串操作完整示例

    js常用方法、检查是否有特殊字符串、倒序截取字符串操作完整示例

    这篇文章主要介绍了js常用方法、检查是否有特殊字符串、倒序截取字符串操作,结合完整实例形式分析了JavaScript字符串转换、检测、倒序、截取等相关操作技巧,需要的朋友可以参考下
    2020-01-01
  • JavaScript实现简易轮播图最全代码解析(ES5)

    JavaScript实现简易轮播图最全代码解析(ES5)

    这篇文章主要为大家详细介绍了JavaScript实现简易轮播图最全代码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • JavaScript限定范围拖拽及自定义滚动条应用(3)

    JavaScript限定范围拖拽及自定义滚动条应用(3)

    这篇文章主要介绍了JavaScript限定范围拖拽及自定义滚动条应用的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • JS中的数组方法笔记整理

    JS中的数组方法笔记整理

    这篇文章主要介绍了JS中的数组方法笔记整理 的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-07-07
  • JavaScript中const、var和let区别浅析

    JavaScript中const、var和let区别浅析

    在JavaScript中有三种声明变量的方式:var、let、const。但是有朋友不清楚这三种声明变量的区别,下面脚本之家小编给大家详细介绍下js中const、var和let的区别,感兴趣的朋友一起看看吧
    2016-10-10
  • es6数值的扩展方法

    es6数值的扩展方法

    这篇文章主要介绍了es6数值的扩展方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • JS+Ajax实现百度智能搜索框

    JS+Ajax实现百度智能搜索框

    现在遇到这样的需求,要求输入一个a之后会出现包含a的下拉列表,当我们点击某一个的时候,搜索框中就会出现点击的值。下面小编给大家分享同js和ajax实现百度智能搜索框,需要的的朋友参考下实现代码
    2017-08-08

最新评论