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 相关文章推荐
js获取提交的字符串的字节数
Feb 09 Javascript
JavaScript中获取未知对象属性的代码
Apr 27 Javascript
网页防止tab键的使用快速解决方法
Nov 07 Javascript
javascript复制粘贴与clipboardData的使用
Oct 16 Javascript
自己编写的支持Ajax验证的JS表单验证插件
May 15 Javascript
webpack学习--webpack经典7分钟入门教程
Jun 28 Javascript
详解Vue.js Mixins 混入使用
Sep 15 Javascript
vue进行图片的预加载watch用法实例讲解
Feb 07 Javascript
详解vue项目中使用token的身份验证的简单实践
Mar 08 Javascript
使用Vue父子组件通信实现todolist的功能示例代码
Apr 11 Javascript
微信小程序模板消息推送的两种实现方式
Aug 27 Javascript
如何在Express4.x中愉快地使用async的方法
Nov 18 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
php函数间的参数传递(值传递/引用传递)
2013/09/23 PHP
Laravel框架表单验证详解
2014/09/04 PHP
php设计模式之策略模式实例分析【星际争霸游戏案例】
2020/03/26 PHP
JS 容错处理代码, 屏蔽错误信息
2021/03/09 Javascript
jQuery的Ajax时无响应数据的解决方法
2010/05/25 Javascript
js中查找最近的共有祖先元素的实现代码
2010/12/30 Javascript
JavaScript语言核心数据类型和变量使用介绍
2013/08/23 Javascript
js、jquery图片动画、动态切换示例代码
2014/06/03 Javascript
JS实现仿Windows经典风格的选项卡Tab切换代码
2015/10/20 Javascript
浅析JavaScript 箭头函数 generator Date JSON
2016/05/23 Javascript
AngularJS Toaster使用详解
2017/02/24 Javascript
JavaScript使用ZeroClipboard操作剪切板
2017/05/10 Javascript
Windows下快速搭建NodeJS本地服务器的步骤
2017/08/09 NodeJs
JS小球抛物线轨迹运动的两种实现方法详解
2017/12/20 Javascript
基于vue cli重构多页面脚手架过程详解
2018/01/23 Javascript
Node.Js中实现端口重用原理详解
2018/05/03 Javascript
js常用正则表达式集锦
2019/05/17 Javascript
JavaScript实现简单日历效果
2020/09/11 Javascript
jQuery是用来干什么的 jquery其实就是一个js框架
2021/02/04 jQuery
[55:26]DOTA2-DPC中国联赛 正赛 Aster vs LBZS BO3 第一场 2月23日
2021/03/11 DOTA
Python中Numpy mat的使用详解
2019/05/24 Python
让你Python到很爽的加速递归函数的装饰器
2019/05/26 Python
python 6.7 编写printTable()函数表格打印(完整代码)
2020/03/25 Python
Python实现钉钉/企业微信自动打卡的示例代码
2021/02/02 Python
通过HTML5 Canvas API绘制弧线和圆形的教程
2016/03/14 HTML / CSS
英国领先的新鲜松露和最好的松露产品供应商:TruffleHunter
2019/08/26 全球购物
美国知名的隐形眼镜电商:Contacts America
2019/11/19 全球购物
linux面试题参考答案(9)
2015/01/07 面试题
舞蹈专业大学生职业规划范文
2014/03/12 职场文书
课外小组活动总结
2014/08/27 职场文书
干部考察材料范文
2014/12/24 职场文书
部队个人年终总结
2015/03/02 职场文书
新手开公司创业注意事项有哪些?
2019/07/29 职场文书
Maven学习----Maven安装与环境变量配置教程
2021/06/29 Java/Android
MyBatis-Plus 批量插入数据的操作方法
2021/09/25 Java/Android
springboot为异步任务规划自定义线程池的实现
2022/06/14 Java/Android