js实现小窗口拖拽效果


Posted in Javascript onDecember 03, 2016

本文实例为大家分享了js实现窗口拖拽的具体代码,供大家参考,具体内容如下

<!DOCTYPE html>
<html>
 
 <head>
 <meta charset="UTF-8">
 <title></title>
 <style type="text/css">
 #box {
 height: 300px;
 width: 300px;
 background-color: green;
 position: absolute;
 }
 </style>
 </head>
 
 <body>
 <div id="box">
 
 </div>
 </body>
 <script type="text/javascript">
 var box = document.getElementById("box");
 //鼠标按下的函数
 box.onmousedown = function(ev) {
 var oEvent = ev || event;
 //求出鼠标和box的位置差值
 var x = oEvent.clientX - box.offsetLeft;
 var y = oEvent.clientY - box.offsetTop;
 //鼠标移动的函数
 //把事件加在document上,解决因为鼠标移动太快时,
 //鼠标超过box后就没有了拖拽的效果的问题
 document.onmousemove = function(ev) {
  var oEvent = ev || event;
 
  //保证拖拽框一直保持在浏览器窗口内部,不能被拖出的浏览器窗口的范围
  var l = oEvent.clientX - x;
  var t = oEvent.clientY - y;
  if(l < 0) {
  l = 0;
 
  } else if(l > document.documentElement.clientWidth - box.offsetWidth) {
  l = document.documentElement.clientWidth - box.offsetWidth;
  }
  if(t < 0) {
  t = 0;
  } else if(t > document.documentElement.clientHeight - box.offsetHeight) {
  t = document.documentElement.clientHeight - box.offsetHeight;
  }
  box.style.left = l + "px";
  box.style.top = t + "px";
 }
 //鼠标抬起的函数
 document.onmouseup = function() {
  document.onmousemove = null;
  document.onmouseup = null;
 }
 //火狐浏览器在拖拽空div时会出现bug
 //return false阻止默认事件,解决火狐的bug
 return false;
 
 }
 </script>
 
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
控制打印时页眉角的代码
Feb 08 Javascript
jquery 插件开发备注
Aug 27 Javascript
jQuery移除tr无效的解决方法(tr是动态添加)
Sep 22 Javascript
Javascript HTML5 Canvas实现的一个画板
Apr 12 Javascript
再谈javascript常见错误及解决方法
Sep 16 Javascript
BootStrap 实现各种样式的进度条效果
Dec 07 Javascript
深入浅析JSONAPI在PHP中的应用
Dec 24 Javascript
vue2.0 根据状态值进行样式的改变展示方法
Mar 13 Javascript
jQuery中的$是什么意思及 $. 和 $().的区别
Apr 20 jQuery
jQuery点击页面其他部分隐藏下拉菜单功能
Nov 27 jQuery
详解element-ui级联菜单(城市三级联动菜单)和回显问题
Oct 02 Javascript
基于PHP pthreads实现多线程代码实例
Jun 24 Javascript
学习vue.js计算属性
Dec 03 #Javascript
学习vue.js中class与style绑定
Dec 03 #Javascript
jQuery图片轮播实现并封装(一)
Dec 03 #Javascript
jQuery 选择符详细介绍及整理
Dec 02 #Javascript
JQuery 动态生成Table表格实例代码
Dec 02 #Javascript
jQuery实现背景滑动菜单
Dec 02 #Javascript
Angular2学习笔记——详解NgModule模块
Dec 02 #Javascript
You might like
如何跨站抓取别的站点的页面的补充
2006/10/09 PHP
php实现事件监听与触发的方法
2014/11/21 PHP
PHP7.1实现的AES与RSA加密操作示例
2018/06/15 PHP
前端开发部分总结[兼容性、DOM操作、跨域等](持续更新)
2010/03/04 Javascript
一些主流JS框架中DOMReady事件的实现小结
2011/02/12 Javascript
《JavaScript高级程序设计》阅读笔记(二) ECMAScript中的原始类型
2012/02/27 Javascript
IE6背景图片不缓存问题解决方案及图片使用策略多个方法小结
2012/05/14 Javascript
javascript刷新父页面的各种方法汇总
2014/09/03 Javascript
JQuery判断radio是否选中并获取选中值的示例代码
2014/10/17 Javascript
jQuery循环遍历子节点并获取值的方法
2016/04/14 Javascript
基于JS实现bookstore静态页面的实例代码
2017/02/22 Javascript
使用requirejs模块化开发多页面一个入口js的使用方式
2017/06/14 Javascript
JavaScript中Require调用js的实例分享
2017/10/27 Javascript
微信小程序按钮去除边框线分享页面功能
2018/08/27 Javascript
vue 监听窗口变化对页面部分元素重新渲染操作
2020/07/28 Javascript
如何在Python中编写并发程序
2016/02/27 Python
Python彩色化Linux的命令行终端界面的代码实例分享
2016/07/02 Python
Python数据结构之栈、队列的实现代码分享
2017/12/04 Python
python利用OpenCV2实现人脸检测
2020/04/16 Python
Python切片索引用法示例
2018/05/15 Python
python修改linux中文件(文件夹)的权限属性操作
2020/03/05 Python
Python Scrapy多页数据爬取实现过程解析
2020/06/12 Python
Django多数据库联用实现方法解析
2020/11/12 Python
使用OpenCV实现人脸图像卡通化的示例代码
2021/01/15 Python
瑞贝卡·明可弗包包官网:Rebecca Minkoff
2016/07/21 全球购物
即兴演讲稿
2014/01/04 职场文书
初中新生军训方案
2014/05/13 职场文书
房屋租赁合同补充协议
2014/10/11 职场文书
工作作风懒散检讨书
2014/10/29 职场文书
小学二年级数学教学计划
2015/01/20 职场文书
扬州个园导游词
2015/02/06 职场文书
2015年建筑工作总结报告
2015/05/04 职场文书
详解Django中 render() 函数的使用方法
2021/04/22 Python
Python自动化测试PO模型封装过程详解
2021/06/22 Python
css中有哪些方式可以隐藏页面元素及区别
2022/06/16 HTML / CSS
Pytorch中expand()的使用(扩展某个维度)
2022/07/15 Python