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 相关文章推荐
jQuery 各种浏览器下获得日期区别
Dec 22 Javascript
IE7中javascript操作CheckBox的checked=true不打勾的解决方法
Dec 07 Javascript
JS中showModalDialog 的使用解析
Apr 17 Javascript
js sort 二维数组排序的用法小结
Jan 24 Javascript
JS完整获取IE浏览器信息包括类型、版本、语言等等
May 22 Javascript
测试IE浏览器对JavaScript的AngularJS的兼容性
Jun 19 Javascript
jQuery实现html元素拖拽
Jul 21 Javascript
继续学习javascript闭包
Dec 03 Javascript
原生js实现addclass,removeclass,toggleclasss实例
Nov 24 Javascript
Node.js和Express简单入门介绍
Mar 24 Javascript
Vue.js实现模拟微信朋友圈开发demo
Apr 20 Javascript
在vue中把含有html标签转为html渲染页面的实例
Oct 28 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
《Re:从零开始的异世界生活》剧情体验,手游新作定名
2020/04/09 日漫
PHP+DBM的同学录程序(4)
2006/10/09 PHP
yii2中使用Active Record模式的方法
2016/01/09 PHP
php版微信公众平台入门教程之开发者认证的方法
2016/09/26 PHP
Laravel 5.5基于内置的Auth模块实现前后台登陆详解
2017/12/21 PHP
php使用mysqli和pdo扩展,测试对比连接mysql数据库的效率完整示例
2019/05/09 PHP
Javascript 阻止javascript事件冒泡,获取控件ID值
2009/06/27 Javascript
addEventListener和attachEvent二者绑定的执行函数中的this不相同
2012/12/09 Javascript
js动态修改input输入框的type属性(实现方法解析)
2013/11/13 Javascript
jQuery弹出框代码封装DialogHelper
2015/01/30 Javascript
JS实现文字掉落效果的方法
2015/05/06 Javascript
js图片轮播手动切换特效
2017/01/12 Javascript
vue 使用ref 让父组件调用子组件的方法
2018/02/08 Javascript
微信小程序倒计时功能实例代码
2018/07/17 Javascript
用webpack4开发小程序的实现方法
2019/06/04 Javascript
layui加载表格,绑定新增,编辑删除,查看按钮事件的例子
2019/09/06 Javascript
[01:08:57]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第二场
2014/05/24 DOTA
Python contextlib模块使用示例
2015/02/18 Python
python实现神经网络感知器算法
2017/12/20 Python
Pycharm使用远程linux服务器conda/python环境在本地运行的方法(图解))
2019/12/09 Python
TensorFlow加载模型时出错的解决方式
2020/02/06 Python
开启Django博客的RSS功能的实现方法
2020/02/17 Python
Python异常原理及异常捕捉实现过程解析
2020/03/25 Python
pyqt5数据库使用详细教程(打包解决方案)
2020/03/25 Python
利用Python实现某OA系统的自动定位功能
2020/05/27 Python
size?德国官方网站:英国伦敦的球鞋精品店
2018/03/17 全球购物
建筑工程专业毕业生自荐信
2013/10/19 职场文书
促销活动策划方案
2014/01/12 职场文书
信息服务专业毕业生求职信
2014/03/02 职场文书
法人授权委托书范本
2014/04/04 职场文书
村干部培训方案
2014/05/02 职场文书
社区服务活动小结
2014/07/08 职场文书
工地例会施工汇报材料
2014/08/22 职场文书
成都人事代理协议书
2014/10/25 职场文书
医院财务人员岗位职责
2015/04/14 职场文书
会计入职心得体会
2016/01/22 职场文书