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 相关文章推荐
JQuery 动态扩展对象之另类视角
May 25 Javascript
JQuery为textarea添加maxlength属性并且兼容IE
Apr 25 Javascript
jQuery异步获取json数据方法汇总
Dec 22 Javascript
jQuery插件slides实现无缝轮播图特效
Apr 17 Javascript
关于延迟加载JavaScript
May 05 Javascript
如何解决ligerUI布局时Center中的Tab高度大小
Nov 24 Javascript
用window.onerror捕获并上报Js错误的方法
Jan 27 Javascript
webix+springmvc session超时跳转登录页面
Oct 30 Javascript
JavaScript实现旋转轮播图
Aug 18 Javascript
JavaScript+H5实现微信摇一摇功能
May 23 Javascript
使用VueRouter的addRoutes方法实现动态添加用户的权限路由
Jun 03 Javascript
使用Angular material主题定义自己的组件库的配色体系
Sep 04 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通过PHPExcel导入Excel表格到MySQL数据库的简单实例
2016/10/29 PHP
js 火狐下取本地路径实现思路
2013/04/02 Javascript
解析js原生方法创建表格效率测试
2013/07/08 Javascript
Js控制滑轮左右滑动实例
2015/02/13 Javascript
jQuery选择器源码解读(一):Sizzle方法
2015/03/31 Javascript
以jQuery中$.Deferred对象为例讲解promise对象是如何处理异步问题
2015/11/13 Javascript
js实现select下拉框菜单
2015/12/08 Javascript
js编写当天简单日历效果【实现代码】
2016/05/03 Javascript
第八篇Bootstrap下拉菜单实例代码
2016/06/21 Javascript
Vue项目全局配置页面缓存之按需读取缓存的实现详解
2018/08/01 Javascript
详解JavaScript的变量
2019/04/04 Javascript
在微信小程序中使用vant的方法
2019/06/07 Javascript
深入webpack打包原理及loader和plugin的实现
2020/05/06 Javascript
Vue 基于 vuedraggable 实现选中、拖拽、排序效果
2020/05/18 Javascript
js利用iframe实现选项卡效果
2020/08/09 Javascript
JavaScript实现网页跨年倒计时
2020/12/02 Javascript
[01:46]TI4西雅图DOTA2前线报道 中国选手抱团调时差
2014/07/08 DOTA
[42:39]老党炸弹人试玩视频
2014/09/03 DOTA
python使用opencv进行人脸识别
2017/04/07 Python
Python中使用haystack实现django全文检索搜索引擎功能
2017/08/26 Python
DataFrame中的object转换成float的方法
2018/04/10 Python
解决Django中多条件查询的问题
2019/07/18 Python
Python Web程序搭建简单的Web服务器
2019/07/31 Python
Python中bisect的用法及示例详解
2020/07/20 Python
网页中的电话号码如何实现一键直呼效果_附示例
2016/03/15 HTML / CSS
HTML5的结构和语义(3):语义性的块级元素
2008/10/17 HTML / CSS
5个你不知道的HTML5的接口介绍
2013/08/07 HTML / CSS
Jdbc数据访问技术面试题
2012/03/30 面试题
幼师自荐信
2013/10/26 职场文书
运动会稿件50字
2014/02/17 职场文书
实习指导老师评语
2014/04/26 职场文书
教师廉洁自律承诺书
2014/05/26 职场文书
会计专业毕业生求职信
2014/07/04 职场文书
教师节寄语2015
2015/03/23 职场文书
AudioContext 实现音频可视化(web技术分享)
2022/02/24 Javascript
HttpClient实现表单提交上传文件
2022/08/14 Java/Android