js获取DIV的位置坐标的三种方法!
js获取DIV的位置坐标的三种方法!
方法一:
var odiv=document.getElementById('divid');
alert(odiv.getBoundingClientRect().left);
alert(odiv.getBoundingClientRect().top);
方法二:
function CPos(x, y){this.x = x;this.y = y;}/*** 得到对象的相对浏览器的坐标*/function GetObjPos(ATarget){var target = ATarget;var pos = new CPos(target.offsetLeft, target.offsetTop);var target = target.offsetParent;while (target){pos.x += target.offsetLeft;pos.y += target.offsetTop;target = target.offsetParent}return pos;}var obj = document.getElementById('divid')
alert(GetObjPos(obj)['x']) //x坐标
alert(GetObjPos(obj)['y']) //y坐标
方法三:
function getElementPos(elementId){ var ua = navigator.userAgent.toLowerCase(); var isOpera = (ua.indexOf('opera') != -1); var isIE = (ua.indexOf('msie') != -1 && !isOpera); // not opera spoof var el = document.getElementById(elementId); if (el.parentNode === null || el.style.display == 'none') { return false; } var parent = null; var pos = []; var box; if (el.getBoundingClientRect) //IE { box = el.getBoundingClientRect(); var scrollTop = Math.max(document.documentElement.scrollTop, document.body.scrollTop); var scrollLeft = Math.max(document.documentElement.scrollLeft, document.body.scrollLeft); return { x: box.left + scrollLeft, y: box.top + scrollTop }; } else if (document.getBoxObjectFor) // gecko { box = document.getBoxObjectFor(el); var borderLeft = (el.style.borderLeftWidth) ? parseInt(el.style.borderLeftWidth) : 0; var borderTop = (el.style.borderTopWidth) ? parseInt(el.style.borderTopWidth) : 0; pos = [box.x - borderLeft, box.y - borderTop]; } else // safari & opera { pos = [el.offsetLeft, el.offsetTop]; parent = el.offsetParent; if (parent != el) { while (parent) { pos[0] += parent.offsetLeft; pos[1] += parent.offsetTop; parent = parent.offsetParent; } } if (ua.indexOf('opera') != -1 || (ua.indexOf('safari') != -1 && el.style.position == 'absolute')) { pos[0] -= document.body.offsetLeft; pos[1] -= document.body.offsetTop; } } if (el.parentNode) { parent = el.parentNode; } else { parent = null; } while (parent && parent.tagName != 'BODY' && parent.tagName != 'HTML') { // account for any scrolled ancestors pos[0] -= parent.scrollLeft; pos[1] -= parent.scrollTop; if (parent.parentNode) { parent = parent.parentNode; } else { parent = null; } } return { x: pos[0], y: pos[1] };
} var xd = getElementPos("divid");
alert(xd.x);
alert(xd.y);
欢迎测试。
转载于:https://www.cnblogs.com/flymoo/archive/2011/09/25/2190179.html
js获取DIV的位置坐标的三种方法!相关推荐
- 用JQuery或JS改变div的id的五种方法
div的id是可以改变的,通常使用的方法是通过JQuery或Javascript来实现.本文介绍用JQuery或JS改变div的id的五种方法. 方法一:使用Tag选择器 JQuery代码如下: &l ...
- js获取classname值_利用js获取元素class值的两种方法
我们有时为了达到某种效果,需要以元素的class值为条件做判断. 我们如何利用JavaScript获取元素class的值?我们先看下面代码: x=document.getElementsByTagNa ...
- JS获取URL中参数值的4种方法
方法一:正则法 function getQueryString(name) { var reg = new RegExp('(^|&)' + name + '=([^&]*)(& ...
- 获取网站 favicon.ico 的三种方法
获取网站 favicon.ico的三种方法 方法一: 直接在网站网址后面加favicon.ico 例如:https://www.baidu.com/favicon.ico (有一些网站可能会直接跳转到 ...
- java 当前时间string_Java 获取当前系统时间的三种方法
准备工作: import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; 方式一: /** ...
- js获取div元素高度和宽度的方法
前端web页面中,js可以很方便的获取div元素的高度和宽度,那么这篇文章就说一说原生JS与JQ如何快速的获取DIV元素的高度和宽度的方法. js获取div元素高度与宽度的方法 js获取div元素的高 ...
- web java获取当前时间_Java 获取当前系统时间的三种方法
准备工作: import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; 方式一: /** ...
- 使一个div居中显示的三种方法
使一个div居中显示的三种方法 1. <!DOCTYPE html> <html lang="en"> <head><meta chars ...
- js之删除对象属性的三种方法 判断对象中是否有某一属性的四种方法
js之删除对象属性的三种方法 & 判断对象中是否有某一属性的四种方法 示例 1.基础版 var a = { id: 18, age: 20, name: "zhangsan" ...
最新文章
- list.php tid= field,织梦CMS初试-套用指定的html模板,解析内容列表【笔记】
- 双目深度估计中的自监督学习概览
- php curl伪造referer与来源IP实例
- Sql plus命令报command not found的解决笔记
- 验证客户端和服务端可以传输经SM4加密的密文数据,从而验证发送数据已使用服务器密码机进行SM4加密,而不是随便的字符串乱码
- oracle path函数,自定义类似 sys_connect_by_path 功能的函数
- 余承东谈华为6G:正在研发,还需要10年时间
- mysql 启动必须加-h_Windows 安装 nginx,MySQL 等软件并加入系统服务启动详细
- 388.文件的最长绝对路径
- Proteus的基本使用方法
- C++随机生成中文姓名
- rocketdock皮肤_使用RocketDock皮肤获取Windows 7,Vista和XP中的Windows 8魅力栏
- 夏天最美丽的就应该是荷花了
- ArcGIS Pro从0到1入门实战教程 书籍淘宝线上销售,免费下载数据和视频
- 数据仓库1-数仓的意义
- 用AI语音机器人有哪些需要注意事项
- 常用的嵌入式硬件通信接口协议(UART、IIC、SPI、RS-232、RS-485、RS-422、CAN、USB、IRDA)(一)
- mysql数据库的配置
- vissim跟驰模型_VISSIM,PARAMICS,TSIS仿真软件对比分析 -
- 租一个月的云服务器要花费多少?
热门文章
- c++设置一个二维字符组初值_6.8 C++字符数组
- python3.5模块大全-python tkinter模块使用大全(超全)
- 组合体计算机绘图的实验原理,机械制图及计算机绘图
- bitcoin-memorypool源码分析
- 【转】QT实现不规则窗体
- 【转】Qt编写串口通信程序全程图文讲解
- sqrt()平方根计算函数的实现1——二分法
- 页面缓存 ,数据源缓存,自定义缓存
- PHP中如何防止直接访问或查看或下载config.php文件
- [Usaco2015 dec]Breed Counting