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 相关文章推荐
个人总结的一些关于String、Function、Array的属性和用法
Jan 10 Javascript
让jQuery与其他JavaScript库并存避免冲突的方法
Dec 23 Javascript
创建你的第一个AngularJS应用的方法
Jun 16 Javascript
JS+CSS实现大气的黑色首页导航菜单效果代码
Sep 10 Javascript
js重写方法的简单实现
Jul 10 Javascript
JavaScript计算值然后把值嵌入到html中的实现方法
Oct 29 Javascript
JS 组件系列之Bootstrap Table 冻结列功能IE浏览器兼容性问题解决方案
Jun 30 Javascript
ES6学习之变量的两种命名方法示例
Jul 18 Javascript
JavaScript继承与多继承实例分析
May 26 Javascript
详解webpack引入第三方库的方式以及注意事项
Jan 15 Javascript
微信小程序服务器日期格式化问题
Jan 07 Javascript
Jquery Datatables的使用详解
Jan 30 jQuery
多种方法实现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
二次元帅气男生排行榜,只想悄悄收藏系列
2020/03/04 日漫
php 删除记录实现代码
2009/03/12 PHP
php输出全球各个时区列表的方法
2015/03/31 PHP
PHP获取远程http或ftp文件的md5值的方法
2019/04/15 PHP
PHP字符串和十六进制如何实现互相转换
2020/07/16 PHP
如何在Web页面上直接打开、编辑、创建Office文档
2007/03/12 Javascript
Javascript 获取LI里的内容
2008/12/17 Javascript
JavaScript 浮点数运算 精度问题
2009/10/06 Javascript
JavaScript 数组循环引起的思考
2010/01/01 Javascript
Jquery实现鼠标移上弹出提示框、移出消失思路及代码
2013/05/19 Javascript
js函数定时器实现定时读取系统实时连接数
2014/04/30 Javascript
jquery编写Tab选项卡滚动导航切换特效
2020/07/17 Javascript
JavaScript希尔排序、快速排序、归并排序算法
2016/05/08 Javascript
Angularjs根据json文件动态生成路由状态的实现方法
2017/04/17 Javascript
js canvas实现红包照片效果
2018/08/21 Javascript
Angular 利用路由跳转到指定页面的指定位置方法
2018/08/31 Javascript
更改BootStrap popover的默认样式及popover简单用法
2018/09/13 Javascript
傻瓜式vuex语法糖kiss-vuex整理
2018/12/21 Javascript
详解Element 指令clickoutside源码分析
2019/02/15 Javascript
vue实现鼠标经过动画
2019/10/16 Javascript
JavaScript实现刮刮乐效果
2020/11/01 Javascript
[02:58]献给西雅图的情书_高清
2014/05/29 DOTA
[50:02]完美世界DOTA2联赛循环赛 Magma vs IO BO2第一场 11.01
2020/11/02 DOTA
[01:38:19]夜魇凡尔赛茶话会 第五期
2021/03/11 DOTA
零基础写python爬虫之打包生成exe文件
2014/11/06 Python
Python基于更相减损术实现求解最大公约数的方法
2018/04/04 Python
神经网络(BP)算法Python实现及应用
2018/04/16 Python
Pycharm设置界面全黑的方法
2018/05/23 Python
Pytorch 计算误判率,计算准确率,计算召回率的例子
2020/01/18 Python
如何搭建pytorch环境的方法步骤
2020/05/06 Python
Python自带的IDE在哪里
2020/07/01 Python
css3.0新属性效果在ie下的解决方案
2010/05/10 HTML / CSS
市场部专员岗位职责
2013/11/30 职场文书
一年级班主任感言
2014/03/08 职场文书
2014年教师党员自我评议
2014/09/19 职场文书
PyTorch 实现L2正则化以及Dropout的操作
2021/05/27 Python