JavaScript通过ID获取元素坐标

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.getElementByIdx_x_x(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]};  
}  
  
//sample  
var pos=getElementPos("divId");  
alert("距左边距离"+ pos.x +",距上边距离"+pos.y);  

JavaScript通过ID获取元素坐标的更多相关文章

  1. javascript querySelector和getElementById通过id获取元素的区别

    querySelector和getElementById通过id获取元素的区别 <!DOCTYPE html> <html> <head> <meta cha ...

  2. 通过ID获取元素 注:获取的元素是一个对象,如想对元素进行操作,我们要通过它的属性或方法。

    通过ID获取元素 学过HTML/CSS样式,都知道,网页由标签将信息组织起来,而标签的id属性值是唯一的,就像是每人有一个身份证号一样,只要通过身份证号就可以找到相对应的人.那么在网页中,我们通过id ...

  3. js中用tagname和id获取元素的3种方法

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. JavaScript中的获取元素的方法

    通过id获取元素 document.getElementById(id名字) 通过标签获取元素 document/元素.getElementsByTagName(标签名) 通过css选择器获取元素 d ...

  5. Python+Appium自动化测试(11)-location与size获取元素坐标

    appium做app自动化测试过程中,有时需要获取控件元素的坐标进行滑动操作.appium中提供了location方法获取控件元素左上角的坐标,再通过size方法获取控件元素的宽高,就可以得到控件元素 ...

  6. JavaScript之怎样获取元素节点

    JavaScript获取元素节点一共有三种方法,分别是通过元素ID.通过标签名字和通过类名字来获取: 1.通过元素ID属性的ID值来获得元素对象-getElementById() DOM提供了一个名为 ...

  7. Javascript及Jquery获取元素节点以及添加和删除操作

    用了javascript和jquery很久,把所有元素节点的操作总结了下,放在博客上作为记录. Javascript获取元素的主要方式有三种 1.document.getElementById('ma ...

  8. 通过ID获取元素

    网页由标签将信息组织起来,而标签的id属性值是唯一的,就像是每人有一个身份证号一样,只要通过身份证号就可以找到相对应的人.那么在网页中,我们通过id先找到标签,然后进行操作. 语法: document ...

  9. js之checkbox的代码全选/全不选,使用id获取元素,而不是name

    每当有多个选项的时候,都会有一种想法是:全选,全不选,如果子选项有被选,父选项也得被选. 注意:这里是根据id来获取元素的,但是不能直接用getElementById,因为那只能返回一个,而不是集合. ...

随机推荐

  1. oracle--函数--bai

    --1 没有入参的函数.返回字符串 create or replace function get_time return varchar2 as v_time varchar2(20); --声明1个 ...

  2. js事件(Event)知识整理

    事件(Event)知识整理,本文由网上资料整理而来,需要的朋友可以参考下   鼠标事件 鼠标移动到目标元素上的那一刻,首先触发mouseover 之后如果光标继续在元素上移动,则不断触发mousemo ...

  3. 《SQL必知必会》学习笔记(二)

    咱们接着上一篇的内容继续.这一篇主要回顾子查询,联合查询,复制表这三类内容. 上一部分基本上都是简单的Select查询,即从单个数据库表中检索数据的单条语句,但是实际应用中的业务逻辑往往会非常复杂,所 ...

  4. async await

    参考:https://blogs.msdn.microsoft.com/windowsappdev_cn/2012/04/30/winrt-await/

  5. Codeforces Round #354 (Div. 2) ABCD

    Codeforces Round #354 (Div. 2) Problems     # Name     A Nicholas and Permutation standard input/out ...

  6. 我们是怎么管理QQ群的

    文章背景:腾讯平台上的qq群数以千万百万计,但99%的在吹水扯蛋,从早上的问好开始,到晚上的晚安,无一不浪费青春之时间,看之痛心,无力改变,只好自己建了一个,希望能以此来改变群内交流的氛围或环境. 以 ...

  7. Sql Server随机取数据

    select top 10 * from tablename order by NEWID()

  8. prototype,__proto__,constructor

    proto属性: 所有对象都有此属性.但它不是规范里定义的属性,并不是所有JavaScript运行环境都支持.它指向对象的原型,也就是你说的继承链里的原型.通过Object.getPrototypeO ...

  9. 隐式的bean发现与自动装配机制

    使用beans.xml文件进行bean的创建和注入通常是可行的,但在便利性上Spring提供了更简单的方法--自动装配 接下来我们假设一个场景:我有若干播放器(MediaPlayer{CD播放器/MP ...

  10. java合集框架第一天

    文章目录 1 collection接口 2  list接口 3 Iterator 4 Vertor 5  ArrayList 6 LinkedList 主体部分: (1)collection Java ...