JS实现拖动示例代码


Posted in Javascript onNovember 01, 2013

getBoundingClientRect() 来获取页面元素的位置

document.documentElement.getBoundingClientRect

该方法返回一个对象,从而获得页面中某个元素的左,上,右和下分别相对浏览器视窗的位置,即分别代表该元素上、左、右、下四条边界相对于浏览器窗口左上角(注意,不是文档区域的左上角)的偏移像素值。并且该方法已经不再是IE Only了,FF3.0+和Opera9.5+已经支持了该方法,可以说在获得页面元素位置上效率能有很大的提高,所以获取页面上某个元素相对于浏览器窗口的偏移量就成了getBoundingClientRect的用武之地了,按照一篇文章的说法,it's awsome,太帅了=。=因为不必纠结于offset、pagex、clientx等等等等等等。在以前版本的Opera和Firefox中必须通过循环来获得元素在页面中的绝对位置。
JS实现拖动示例代码 
JS实现拖动示例代码 
代码示例:
<span style="font-size:14px"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Demo</title> 
</head> <body style="width:2000px; height:1000px;"> 
<div id="demo" style="position:absolute; left:518px; right:100px; width:500px; height:500px; background:#CC0000; top: 114px;">Demo为了方便就直接用绝对定位的元素</div> 
</body> 
</html> 
<script> 
document.getElementById('demo').onclick=function (){ 
if (document.documentElement.getBoundingClientRect) { 
alert("left:"+this.getBoundingClientRect().left) 
alert("top:"+this.getBoundingClientRect().top) 
alert("right:"+this.getBoundingClientRect().right) 
alert("bottom:"+this.getBoundingClientRect().bottom) 
<strong>var X= this.getBoundingClientRect().left+document.documentElement.scrollLeft; 
var Y = this.getBoundingClientRect().top+document.documentElement.scrollTop;</strong> 
alert("Demo的位置是X:"+X+";Y:"+Y) 
} 
} 
</script></span>
Javascript 相关文章推荐
JavaScript获取onclick、onchange等事件值的代码
Jul 22 Javascript
javascript中对变量类型的判断方法
Aug 09 Javascript
JS判断是否长按某一键的方法
Mar 02 Javascript
Node.js的Web模板引擎ejs的入门使用教程
Jun 06 Javascript
jquery插件bootstrapValidator数据验证详解
Nov 09 Javascript
PHP实现本地图片上传和验证功能
Feb 27 Javascript
vue 怎么创建组件及组件使用方法
Jul 27 Javascript
基于jQuery中ajax的相关方法汇总(必看篇)
Nov 08 jQuery
webpack多页面开发实践
Dec 18 Javascript
深入理解Node module模块
Mar 26 Javascript
详解Vue.js在页面加载时执行某个方法
Nov 20 Javascript
node.JS的crypto加密模块使用方法详解(MD5,AES,Hmac,Diffie-Hellman加密)
Feb 06 Javascript
多种方法实现JS动态添加事件
Nov 01 #Javascript
基于jquery插件实现常见的幻灯片效果
Nov 01 #Javascript
jQuery Mobile 导航栏代码
Nov 01 #Javascript
js将json格式内容转换成对象的方法
Nov 01 #Javascript
JS实现切换标签页效果实例代码
Nov 01 #Javascript
Javascript delete 引用类型对象
Nov 01 #Javascript
理解Javascript闭包
Nov 01 #Javascript
You might like
php session劫持和防范的方法
2013/11/12 PHP
解决更换PHP5.4以上版本后Dedecms后台登录空白问题的方法
2015/10/23 PHP
Laravel如何实现自动加载类
2019/10/14 PHP
JS模拟键盘打字效果的方法
2015/08/05 Javascript
javascript常用函数(1)
2015/11/04 Javascript
JavaScript中的this机制
2016/01/30 Javascript
jquery实现具有收缩功能的垂直导航菜单
2016/02/16 Javascript
Js+Ajax,Get和Post在使用上的区别小结
2016/06/08 Javascript
AngularJS入门教程之链接与图片模板详解
2016/08/19 Javascript
ros::spin() 和 ros::spinOnce()函数的区别及详解
2016/10/01 Javascript
js实现一个可以兼容PC端和移动端的div拖动效果实例
2016/12/09 Javascript
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
2016/12/14 Javascript
JS基于面向对象实现的选项卡效果示例
2016/12/20 Javascript
详解axios在node.js中的post使用
2017/04/27 Javascript
Mac系统下Webstorm快捷键整理大全
2017/05/28 Javascript
node.js博客项目开发手记
2018/03/16 Javascript
js计算两个日期间的天数月的实例代码
2018/09/20 Javascript
原生JS与CSS实现软件卸载对话框功能
2019/12/05 Javascript
js实现拖动缓动效果
2020/01/13 Javascript
JavaScript中数组去重的5种方法
2020/07/04 Javascript
Nuxt.js 静态资源和打包的操作
2020/11/06 Javascript
Python实现建立SSH连接的方法
2015/06/03 Python
python+mongodb数据抓取详细介绍
2017/10/25 Python
python实现ip代理池功能示例
2019/07/05 Python
python应用文件读取与登录注册功能
2019/09/23 Python
通过python扫描二维码/条形码并打印数据
2019/11/14 Python
Python安装与卸载流程详细步骤(图解)
2020/02/20 Python
法务专员岗位职责
2014/01/02 职场文书
采购助理岗位职责
2014/02/16 职场文书
竞选大队委员演讲稿
2014/04/28 职场文书
设备管理实施方案
2014/05/31 职场文书
酒店优秀员工事迹材料
2014/06/02 职场文书
父亲去世追悼词
2015/06/23 职场文书
2016春季小学开学寄语
2015/12/03 职场文书
Html5页面播放M4a音频文件
2021/03/30 HTML / CSS
Nginx工作原理和优化总结。
2021/04/02 Servers