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 相关文章推荐
Javascript 类与静态类的实现
Apr 01 Javascript
基于jQuery的遍历同id元素 并响应事件的代码
Jun 14 Javascript
判断复选框是否被选中的两种方法
Jun 04 Javascript
JQuery实现当鼠标停留在某区域3秒后自动执行
Sep 09 Javascript
jquery通过ajax加载一段文本内容的方法
Jan 15 Javascript
jquery表格datatables实例解析 直接加载和延迟加载
Aug 12 Javascript
js时间比较 js计算时间差的简单实现方法
Aug 26 Javascript
React Native实现简单的登录功能(推荐)
Sep 19 Javascript
ReactNative中使用Redux架构总结
Dec 15 Javascript
JS常见构造模式实例对比分析
Aug 27 Javascript
Vue+Element UI+Lumen实现通用表格分页功能
Feb 02 Javascript
原生javascript中this几种常见用法总结
Feb 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
一个PHP操作Access类(PHP+ODBC+Access)
2007/01/02 PHP
开源php中文分词系统SCWS安装和使用实例
2014/04/11 PHP
iOS10推送通知开发教程
2016/09/19 PHP
php arsort 数组降序排序详细介绍
2016/11/17 PHP
LaravelS通过Swoole加速Laravel/Lumen详解
2018/03/02 PHP
javascript 字符 Escape,encodeURI,encodeURIComponent
2009/07/09 Javascript
JavaScript 匿名函数(anonymous function)与闭包(closure)
2011/10/04 Javascript
jQuery对象数据缓存Cache原理及jQuery.data方法区别介绍
2013/04/07 Javascript
JS对象转换为Jquery对象实现代码
2013/12/29 Javascript
基于JavaScript实现回到页面顶部动画代码
2016/05/24 Javascript
获取JS中网页各种高宽与位置的方法总结
2016/07/27 Javascript
用node和express连接mysql实现登录注册的实现代码
2017/07/05 Javascript
一种angular的方法级的缓存注解(装饰器)
2018/03/13 Javascript
原生JS实现旋转轮播图+文字内容切换效果【附源码】
2018/09/29 Javascript
微信小程序canvas.drawImage完全显示图片问题的解决
2018/11/30 Javascript
使用VScode 插件debugger for chrome 调试react源码的方法
2019/09/13 Javascript
JavaScript冒泡算法原理与实现方法深入理解
2020/06/04 Javascript
javascript实现前端input密码输入强度验证
2020/06/24 Javascript
[03:13]DOTA2-DPC中国联赛1月25日Recap集锦
2021/03/11 DOTA
浅谈python字符串方法的简单使用
2016/07/18 Python
Django验证码的生成与使用示例
2017/05/20 Python
python-opencv在有噪音的情况下提取图像的轮廓实例
2017/08/30 Python
Python实现压缩文件夹与解压缩zip文件的方法
2018/09/01 Python
python 中的命名空间,你真的了解吗?
2020/08/19 Python
html特殊符号示例 html特殊字符编码对照表
2014/01/14 HTML / CSS
升职自荐书范文
2013/11/28 职场文书
英语感恩演讲稿
2014/01/14 职场文书
安全生产检查通报
2014/01/29 职场文书
大学生作弊检讨书
2014/09/11 职场文书
2015年护士节活动策划方案
2015/05/04 职场文书
道歉信范文
2015/05/12 职场文书
2019最新版试用期劳动合同模板!
2019/07/04 职场文书
CSS实现多个元素在盒子内两端对齐效果
2021/03/30 HTML / CSS
Ajax是什么?Ajax高级用法之Axios技术
2021/04/21 Javascript
Django中session进行权限管理的使用
2021/07/09 Python
德生TECSUN S-2000使用手册文字版
2022/05/10 无线电