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的位置坐标的三种方法!相关推荐

  1. 用JQuery或JS改变div的id的五种方法

    div的id是可以改变的,通常使用的方法是通过JQuery或Javascript来实现.本文介绍用JQuery或JS改变div的id的五种方法. 方法一:使用Tag选择器 JQuery代码如下: &l ...

  2. js获取classname值_利用js获取元素class值的两种方法

    我们有时为了达到某种效果,需要以元素的class值为条件做判断. 我们如何利用JavaScript获取元素class的值?我们先看下面代码: x=document.getElementsByTagNa ...

  3. JS获取URL中参数值的4种方法

    方法一:正则法 function getQueryString(name) { var reg = new RegExp('(^|&)' + name + '=([^&]*)(& ...

  4. 获取网站 favicon.ico 的三种方法

    获取网站 favicon.ico的三种方法 方法一: 直接在网站网址后面加favicon.ico 例如:https://www.baidu.com/favicon.ico (有一些网站可能会直接跳转到 ...

  5. java 当前时间string_Java 获取当前系统时间的三种方法

    准备工作: import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; 方式一: /** ...

  6. js获取div元素高度和宽度的方法

    前端web页面中,js可以很方便的获取div元素的高度和宽度,那么这篇文章就说一说原生JS与JQ如何快速的获取DIV元素的高度和宽度的方法. js获取div元素高度与宽度的方法 js获取div元素的高 ...

  7. web java获取当前时间_Java 获取当前系统时间的三种方法

    准备工作: import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; 方式一: /** ...

  8. 使一个div居中显示的三种方法

    使一个div居中显示的三种方法 1. <!DOCTYPE html> <html lang="en"> <head><meta chars ...

  9. js之删除对象属性的三种方法 判断对象中是否有某一属性的四种方法

    js之删除对象属性的三种方法 & 判断对象中是否有某一属性的四种方法 示例 1.基础版 var a = { id: 18, age: 20, name: "zhangsan" ...

最新文章

  1. list.php tid= field,织梦CMS初试-套用指定的html模板,解析内容列表【笔记】
  2. 双目深度估计中的自监督学习概览
  3. php curl伪造referer与来源IP实例
  4. Sql plus命令报command not found的解决笔记
  5. 验证客户端和服务端可以传输经SM4加密的密文数据,从而验证发送数据已使用服务器密码机进行SM4加密,而不是随便的字符串乱码
  6. oracle path函数,自定义类似 sys_connect_by_path 功能的函数
  7. 余承东谈华为6G:正在研发,还需要10年时间
  8. mysql 启动必须加-h_Windows 安装 nginx,MySQL 等软件并加入系统服务启动详细
  9. 388.文件的最长绝对路径
  10. Proteus的基本使用方法
  11. C++随机生成中文姓名
  12. rocketdock皮肤_使用RocketDock皮肤获取Windows 7,Vista和XP中的Windows 8魅力栏
  13. 夏天最美丽的就应该是荷花了
  14. ArcGIS Pro从0到1入门实战教程 书籍淘宝线上销售,免费下载数据和视频
  15. 数据仓库1-数仓的意义
  16. 用AI语音机器人有哪些需要注意事项
  17. 常用的嵌入式硬件通信接口协议(UART、IIC、SPI、RS-232、RS-485、RS-422、CAN、USB、IRDA)(一)
  18. mysql数据库的配置
  19. vissim跟驰模型_VISSIM,PARAMICS,TSIS仿真软件对比分析 -
  20. 租一个月的云服务器要花费多少?

热门文章

  1. c++设置一个二维字符组初值_6.8 C++字符数组
  2. python3.5模块大全-python tkinter模块使用大全(超全)
  3. 组合体计算机绘图的实验原理,机械制图及计算机绘图
  4. bitcoin-memorypool源码分析
  5. 【转】QT实现不规则窗体
  6. 【转】Qt编写串口通信程序全程图文讲解
  7. sqrt()平方根计算函数的实现1——二分法
  8. 页面缓存 ,数据源缓存,自定义缓存
  9. PHP中如何防止直接访问或查看或下载config.php文件
  10. [Usaco2015 dec]Breed Counting