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 相关文章推荐
stream.js 一个很小、完全独立的Javascript类库
Oct 28 Javascript
Ubuntu 11.10 安装Node.js的方法
Nov 30 Javascript
JQuery中根据属性或属性值获得元素(6种情况获取方法)
Jan 17 Javascript
js函数setTimeout延迟执行的简单介绍
Jul 17 Javascript
jquery进行数组遍历如何跳出当前的each循环
Jun 05 Javascript
使用JavaScript开发IE浏览器本地插件实例
Feb 18 Javascript
jQuery实现简单的DIV拖动效果
Feb 19 Javascript
jQuery.Form上传文件操作
Feb 05 Javascript
JavaScript与JQUERY获取元素的宽、高和位置
Feb 26 Javascript
Javascript实现登录记住用户名和密码功能
Mar 22 Javascript
JS实现简单拖拽效果
Jun 21 Javascript
Angularjs过滤器实现动态搜索与排序功能示例
Dec 13 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设计模式 Chain Of Responsibility (职责链模式)
2011/06/26 PHP
php防止sql注入之过滤分页参数实例
2014/11/03 PHP
PHP编写RESTful接口的方法
2016/02/21 PHP
PHP简单实现生成txt文件到指定目录的方法
2016/04/25 PHP
JavaScript this调用规则说明
2010/03/08 Javascript
window.location.href IE下跳转失效的解决方法
2014/03/27 Javascript
对之前写的jquery分页做下升级
2014/06/19 Javascript
JavaScript中的函数声明和函数表达式区别浅析
2015/03/27 Javascript
JS随机调用指定函数的方法
2015/07/01 Javascript
微信小程序左滑删除效果的实现代码
2017/02/20 Javascript
移动端手指放大缩小插件与js源码
2017/05/22 Javascript
Angular 2父子组件数据传递之局部变量获取子组件其他成员
2017/07/04 Javascript
JS倒计时实例_天时分秒
2017/08/22 Javascript
微信小程序左右滑动的实现代码
2017/12/15 Javascript
详解如何实现Element树形控件Tree在懒加载模式下的动态更新
2019/04/25 Javascript
js中位数不足自动补位扩展padLeft、padRight实现代码
2020/04/06 Javascript
详解vue-router的Import异步加载模块问题的解决方案
2020/05/13 Javascript
微信小程序仿抖音视频之整屏上下切换功能的实现代码
2020/05/24 Javascript
js 函数性能比较方法
2020/08/24 Javascript
Python学习笔记之解析json的方法分析
2017/04/21 Python
如何在sae中设置django,让sae的工作环境跟本地python环境一致
2017/11/21 Python
python pandas消除空值和空格以及 Nan数据替换方法
2018/10/30 Python
Django框架文件上传与自定义图片上传路径、上传文件名操作分析
2019/05/10 Python
python tkinter图形界面代码统计工具(更新)
2019/09/18 Python
Python3爬虫中Splash的知识总结
2020/07/10 Python
python 6行代码制作月历生成器
2020/09/18 Python
重构Python代码的六个实例
2020/11/25 Python
纯CSS3实现圆角效果(含IE兼容解决方法)
2014/05/07 HTML / CSS
英国网上香水店:Fragrance Direct
2016/07/20 全球购物
Ralph Lauren法国官网:美国高品味时装品牌
2017/12/08 全球购物
女士和男士时尚鞋在线购物:Shoespie
2019/02/28 全球购物
StubHub美国:购买或出售您的门票
2019/07/09 全球购物
《植物妈妈有办法》教学反思
2014/02/25 职场文书
超市七夕促销活动方案
2014/08/28 职场文书
安全在我心中演讲稿
2014/09/01 职场文书
python设置 matplotlib 正确显示中文的四种方式
2021/05/10 Python