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 相关文章推荐
document.compatMode介绍
May 21 Javascript
Js setInterval与setTimeout(定时执行与循环执行)的代码(可以传入参数)
Jun 11 Javascript
input 和 textarea 输入框最大文字限制的jquery插件
Oct 27 Javascript
Extjs 3.3切换tab隐藏相应工具栏出现空白解决
Apr 02 Javascript
深入理解JSON数据源格式
Jan 10 Javascript
js实现select跳转功能代码
Oct 22 Javascript
JavaScript中string转换成number介绍
Dec 31 Javascript
JS提示:Uncaught SyntaxError:Unexpected token ) 错误的解决方法
Aug 19 Javascript
jquery横向纵向鼠标滚轮全屏切换
Feb 27 Javascript
ajax跨域访问遇到的问题及解决方案
May 23 Javascript
vue中v-model对select的绑定操作
Aug 31 Javascript
vue中利用three.js实现全景图的完整示例
Dec 07 Vue.js
多种方法实现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 分页类实现代码
2009/12/03 PHP
php遍历目录与文件夹的多种方法详解
2013/11/14 PHP
php实现执行某一操作时弹出确认、取消对话框
2013/12/30 PHP
php生成静态页面的简单示例
2014/04/17 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十二)
2014/06/25 PHP
在phpstudy集成环境下的nginx服务器下配置url重写
2019/12/02 PHP
javascript 简练的几个函数
2009/08/29 Javascript
JavaScript高级程序设计 读书笔记之十一 内置对象Global
2012/03/07 Javascript
jquery div 居中技巧应用介绍
2012/11/24 Javascript
jquery封装的对话框简单实现
2013/07/21 Javascript
给文字加上着重号的JS代码
2013/11/12 Javascript
导入extjs、jquery 文件时$使用冲突问题解决方法
2014/01/14 Javascript
移动设备web开发首选框架:zeptojs介绍
2015/01/29 Javascript
jquery插件jquery.beforeafter.js实现左右拖拽分隔条对比图片的方法
2015/08/07 Javascript
全面解析JavaScript的Backbone.js框架中的Router路由
2016/05/05 Javascript
JavaScript获取select中text值的方法
2017/02/13 Javascript
Express之get,pos请求参数的获取
2017/05/02 Javascript
vue+iview+less 实现换肤功能
2018/08/17 Javascript
解决IE11 vue +webpack 项目中数据更新后页面没有刷新的问题
2018/09/25 Javascript
IE11下CKEditor在Bootstrap Modal中下拉问题的解决
2019/09/25 Javascript
js实现视图和数据双向绑定的方法分析
2020/02/05 Javascript
解决vue scoped html样式无效的问题
2020/10/24 Javascript
[01:53]DOTA2超级联赛专访Zhou 五年职业青春成长
2013/05/29 DOTA
[06:53]2018DOTA2国际邀请赛寻真——勇于创新的Vici Gaming
2018/08/14 DOTA
[01:05:40]VG vs Newbee 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
简单谈谈Python中的闭包
2016/11/30 Python
python爬虫_微信公众号推送信息爬取的实例
2017/10/23 Python
浅谈tensorflow之内存暴涨问题
2020/02/05 Python
Python rabbitMQ如何实现生产消费者模式
2020/08/24 Python
戴森西班牙官网:Dyson西班牙
2020/02/04 全球购物
计算机专业大学生的自我评价
2013/11/14 职场文书
生物学学生自我评价
2014/01/17 职场文书
船舶工程技术专业求职信
2014/08/07 职场文书
学生不讲诚信检讨书
2014/09/29 职场文书
社区志愿者服务心得体会
2016/01/22 职场文书
MySQL创建管理HASH分区
2022/04/13 MySQL