HTML:

  <div id="parent">
    <div id="box">
      测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测      试测试测试
    </div>
  </div>

CSS:

  #parent{
    position:absolute;
    width: 400px;
    height: 400px;
    background-color: blue;

    margin: 10px;
  }
  #box{
    width: 200px;
    height: 200px;
    overflow: scroll;/**/
    background-color: pink;

    /*margin: 10px;*/
    position: absolute; /*此时的offsetTop,offsetLeft,获取的值是相对于父元素的*/
    top: 50px;
    left: 50px;

    border:10px solid red;

    padding: 10px;
    margin: 10px;/**/

  }


var box = document.getElementById("box");

1.scollTop,scollLeft获取/设置滚动条被隐藏的内容的高度/宽度  

    box.scrollTop = 100;
    // alert(box.scrollTop);
    // alert(box.scrollHeight);

  将滚动条设置为0:

    scorllStar(box);
    function scorllStar (elemnet) {
      if (box.scrollTop!=0) {
        box.scrollTop = 0;
      };
    }

2.offsetLeft 和 offsetTop 获取当前元素相对于父元素的位置

  alert(box.offsetTop);

  alert(box.offsetLeft);

  alert(box.offsetParent); // 如果没有给父元素设置position非ie浏览器会返回body对象,ie会返回object,所以要想得到具体的元素需要给              父元素设置position的值。

求子元素距离body的值:
     alert(box.offsetTop + box.offsetParent.offsetTop); // 60 子元素+父元素

如果要求多个嵌套层中的任意一个元素距离父html/body的值时,可以这样:

    alert(newOffsetTop(box));

    function newOffsetTop (elemnet) {
      var top = elemnet.offsetTop;
      var parent = elemnet.offsetParent;
      while(parent!=null){
        top += parent.offsetTop;
        parent = parent.offsetParent;
      }
    return top;
    }

    function newOffsetLeft (elemnet) {
      var left = elemnet.offsetLeft
      var parent = elemnet.offsetParent;
      while(parent!=null){
        left += parent.offsetLeft;
        parent = parent.offsetParent;
      }
    return left;
    }

3.scrollWidth, scollHeight 获取滚动内容的元素大小

  alert(box.scrollWidth); //包含padding值,但不包含margin值,如果有滚动条,会减去滚动条的宽高值

alert(box.scrollHeight); //ie7显示的高度是内容高度不是元素的本身的高度

4.clientWidth,clientHeight获取元素可视区域的大小 包含padding值,减去边框,不包含margin值

alert(box.clientWidth);
alert(box.clientHeight);

5.clientLeft,clientTop  返回元素的左边框,上边框

  alert(box.clientLeft);

  alert(box.clientTop);

http://blog.csdn.net/xuantian868/article/details/3116442

http://blog.sina.com.cn/s/blog_48e6792c0100z7ge.html

DOM元素的大小和位置的更多相关文章

  1. C1:DOM 元素的尺寸和位置

    DOM元素的尺寸和位置 DOM 元素的尺寸 DOM.offsetWidth/offsetHeight: 包括内容区宽/高,padding,border,不包括margin.如果元素的box-sizei ...

  2. JavaScript获取DOM元素位置和尺寸大小

      在一些复杂的页面中经常会用JavaScript处理一些DOM元素的动态效果,这种时候我们经常会用到一些元素位置和尺寸的计算,浏览器兼容性问题也是不可忽略的一部分,要想写出预想效果的JavaScri ...

  3. 获取DOM元素位置和尺寸大小

    JavaScript获取DOM元素位置和尺寸大小 在一些复杂的页面中经常会用JavaScript处理一些DOM元素的动态效果,这种时候我们经常会用到一些元素位置和尺寸的计算,浏览器兼容性问题也是不可忽 ...

  4. 使用html元素的getBoundingClientRect来获取dom元素的时时位置和大小

    使用: var section = $('.section'):这是jquery包装的dom元素,其他前端框架返回的可能也是一个包装元素, 我们需要获得的是里面的html的dom元素 然后:secti ...

  5. 第一百一十七节,JavaScript,DOM元素尺寸和位置

    学习要点: 1.获取元素CSS大小 2.获取元素实际大小 3.获取元素周边大小 本章,我们主要讨论一下页面中的某一个元素它的各种大小和各种位置的计算方式,以便更好的理解. 一.获取元素CSS大小 1. ...

  6. DOM元素尺寸和位置

    一.获取元素 CSS大小 1.通过style 内联获取元素的大小 var box = document.getElementById('box'); //获取元素 box.style.width; / ...

  7. JavaScript(第二十一天)【DOM元素尺寸和位置】

    学习要点: 1.获取元素CSS大小 2.获取元素实际大小 3.获取元素周边大小 本章,我们主要讨论一下页面中的某一个元素它的各种大小和各种位置的计算方式,以便更好的理解.   一.获取元素CSS大小 ...

  8. DOM元素的位置、尺寸及更多的信息

    一.基本概念 document.documentElement是整个DOM树的根节点,对应的元素就是html.下面将其称作根元素或根节点. document.body,对应的元素是body 二.浏览器 ...

  9. vue 组件传递值以及获取DOM元素的位置信息

    1.父组件 select_li.vue 1.1 父组件模板 <template> <div id='selectLi' ref="selectLi"> &l ...

随机推荐

  1. C++变参数模板和...操作符

    https://en.wikipedia.org/wiki/Variadic_template https://msdn.microsoft.com/en-us/library/dn439779.as ...

  2. BCP导出导入大容量数据实践

    前言 SQL SERVER提供多种不同的数据导出导入的工具,也可以编写SQL脚本,使用存储过程,生成所需的数据文件,甚至可以生成包含SQL语句和数据的脚本文件.各有优缺点,以适用不同的需求.下面介绍大 ...

  3. Test Regular Expressions Online with RegExr免费的正则表达式检验网站

    免费的正则表达式检验网站: http://www.regexr.com

  4. ReactiveCocoa源码拆分解析(二)

    (整个关于ReactiveCocoa的代码工程可以在https://github.com/qianhongqiang/QHQReactive下载) 上面抽丝剥茧的把最主要的信号机制给分离开了.但在RA ...

  5. ODBC API简介

    1.      数据类型: 通过SQLGetTypeInfo函数来获取ODBC 3.0支持的数据类型信息.由SQLGetTypeInfo返回的数据类型是数据源所支持的数据类型. SQLRETURN S ...

  6. 【JSOI2007】麻将 bzoj 1028

    Description 麻 将是中国传统的娱乐工具之一.麻将牌的牌可以分为字牌(共有东.南.西.北.中.发.白七种)和序数牌(分为条子.饼子.万子三种花色,每种花色各有一到 九的九种牌),每种牌各四张 ...

  7. source和./的区别

    熟悉Linux的朋友常使用·bash·.·sh·.·source·.·.·,但却并非每位朋友都知道其中的区别.我们通过下面一幅图来为大家说明白.

  8. MySQL 5.6 for Windows 解压缩版配置安装

    MySQL安装文件分为两种,一种是msi格式的,一种是zip格式的.如果是msi格式的可以直接点击安装,按照它给出的安装提示进行安装(相信大家的英文可以看懂英文提示),一般MySQL将会安装在C:\P ...

  9. windows7 安装PHP7 本地网站搭建

    2016年5月21日 18:21:12 星期六 PHP7用了vc14编译的, 因此windows要下载安装一个vc14的发行包, 只有16M 2016年6月1日 23:23:52 星期三 利用PHP自 ...

  10. 【转】Drawable /Bitmap、String/InputStream、Bitmap/byte[]

    原文:http://wuxiaolong.me/2015/08/10/Drawable-to-Bitmap/ Drawable互转Bitmap Drawable转Bitmap 1234 Resourc ...