<!DOCTYPE html>
<html>

<head>
<meta charset="UTF-8">
<title></title>
<style>
#div2 {
width: 150px;
height: 150px;
position: absolute;
background: #CCCCCC;
}
</style>
<script>
window.onload = function() {
var div2 = document.getElementById('div2');
var x = 0;
var y = 0;

document.onmousedown = function(ev) {
var oEvent = ev || event;

//x、y分别代表,鼠标与div之间的横坐标和纵坐标
x = oEvent.clientX - div2.offsetLeft;
y = oEvent.clientY - div2.offsetTop;

document.onmousemove = function(ev) {
var oEvent = ev || event;

//m、n分别代表div的横、纵坐标
var m = oEvent.clientX - x;
var n = oEvent.clientY - y;

//下面两个if else 阻止div飞出页面
if(m < 0){
m = 0;
}
//document.documentElement.clientWidth获取整个页面的宽度
else if(m > (document.documentElement.clientWidth - div2.offsetWidth)){
m = document.documentElement.clientWidth - div2.offsetWidth;
}

if(n < 0){
n =0;
}
else if(n > (document.documentElement.clientHeight - div2.offsetHeight)){
n = document.documentElement.clientHeight - div2.offsetHeight;
}

//设置div的坐标
div2.style.left = m + 'px' ;
div2.style.top = n + 'px';

};

document.onmouseup = function(ev){
var oEvent = ev || event;

//释放move事件,如果不释放,放开鼠标后,div仍然会跟随鼠标移动
document.onmousemove = null;
document.onmouseup = null;
};
};

};
</script>
</head>

<body>
<div id="div2"></div>
</body>

</html>

最新文章

  1. PostGr-SQL 基本概念
  2. PHP中的Memcache详解
  3. Erlang进程的Link机制
  4. IPC机制--Binder
  5. 第五章 与众不同的this
  6. RabbitMQ介绍2 - AMQP协议
  7. 解决“C:\Windows\System32\ntdll.dll”。无法查找或打开 PDB 文件问题
  8. Native libraries .so.XY failing to link at runtime
  9. PHP删除Solr文档
  10. linux下C和shell调用的popen函数
  11. Centos系统各种日志存详解
  12. 推荐一些C#相关的网站、资源和书籍 (转载自http://www.cnblogs.com/jiangxiaofan/p/3808316.html)
  13. 原生JS获取HTML样式并修改
  14. Web worker 与JS中异步编程的对比
  15. Ubuntu16.04 Using Note
  16. chrome Web开放 字体格式不能显示问题
  17. Laravel-任务调度
  18. RuntimeError: An attempt has been made to start a new process before the current process has finished its bootstrapping phase. This probably means that you are not using fork to start your c
  19. Linux安装jdk.18和tomcat8
  20. Typescript 学习笔记七:泛型

热门文章

  1. js 实现全国省市区三级联动
  2. 1.ajax简单实现异步交互
  3. 05. flex元素水平垂直居中(三种position水平垂直居中和两种新老版本水平垂直居中)
  4. 转 rman 恢复报错
  5. Java使用占位符拼接字符串-String.format()的使用
  6. Redis+Lua实现限流
  7. 2016424王启元 Exp2 后门原理与实践
  8. vue-webpack项目中调试的问题
  9. Robot Framework(Screenshot 库)
  10. JavaScript HTML DOM学习记录