1.offsetLeft和offsetTop

只读属性,返回当前元素与父辈元素之间的距离(不包括边框)。其中父辈元素的取法是有门道的:

(1).若父辈元素中有定位的元素,那么就返回距离当前元素最近的定位元素的距离。

(2).若父辈元素中没有定位元素,那么就返回相对于body的距离。

(3).若当前元素具有固定定位(position:fixed;),那么返回的是当前元素与可视窗口的距离。

<div id="a" style="width:400px;height:400px;margin:100px auto 0;background-color: red;">
<div id="b" style="position:relative;width:200px;height:200px;margin:100px auto 0;background-color: blue;">
<div id="c" style="position: fixed;width:50px;height:50px;top:200px;left: 200px;background-color: green;"></div>
<div id="d" style="position: absolute;top:50px;left: 50px;height:100px;width:100px;background-color: yellow">
<div id="e" style="width:50px;height:50px;margin:25px auto 0;background-color: darkred;"></div>
</div>
</div>
</div> <script>
var a=document.getElementById("a");
var b=document.getElementById("b");
var c=document.getElementById("c");
var d=document.getElementById("d");
var e=document.getElementById("e"); console.log("e:"+ e.offsetLeft, e.offsetTop);// e: 25,25。以具有绝对定位的父辈元素d为参照
console.log("d:"+ d.offsetLeft, d.offsetTop);// d: 50,50。以其相对定位的父元素b为参照
console.log("c:"+ c.offsetLeft, c.offsetTop);// c: 200,200。以可视窗口为参照
console.log("b:"+ b.offsetLeft, b.offsetTop);// b: 612,100。以body为参照
console.log("a:"+ a.offsetLeft, a.offsetTop);// a: 512,100。以body为参照
</script>

2.offsetHeight、offsetWidth和style.height、style.width区别

  • offsetHeight、offsetWidth返回的是数值;style.height、style.width返回的是字符串,单位是“px”

  • offsetHeight、offsetWidth只读;style.height、style.width可读写

  • offsetHeight、offsetWidth包括元素的边框内边距;offsetWidth=leftborder+leftpadding+width+rightpadding+rightborder;

  • style.height、style.width只包括元素height、width

  • 如果没有为元素设置高度,offsetHeight会根据内容获取高度值,style.height会返回undefind

  • jquery中使用$(obj).height()$(obj).css('height')来获取元素的高度,返回的是一个带有单位的字符串

     <div id="a" style="width:50px;height:50px;border:5px solid red;padding:10px;margin:50px;background: black;"></div>
    <script>
    var a=document.getElementById("a");
    console.log(a.offsetHeight, a.offsetWidth);//80,80
    console.log(a.style.height, a.style.width);//50px,50px
    </script>

3.clientWidth和clientHeight

只读属性,返回当前节点的可视宽度可视高度(不包括边框、外边距)(包括内边距)clientHeight = topPadding + bottomPadding+ height - scrollbar.height

    <div id="a" style="width:100px;height:50px;border:25px solid blue;background-color:red;overflow: auto;">
hello world!<br> hello world!<br> hello world!<br> hello world!<br> hello world!<br> hello world!<br> hello world!<br> hello world!<br> hello world!<br>
</div>
<script>
var a=document.getElementById("a");
console.log("a:"+ a.clientWidth, a.clientHeight);// a: 83,50。不包括边框和滚动条(17px)
</script>

4.scrollWidth和scrolltHeight

只读属性,返回当前节点的实际宽度实际高度(不包括边框),没有滚动条时和clientWidth和clientHeight一样

上例中:
console.log("a:"+ a.scrollWidth, a.scrollHeight);// a: 83,324。不包括边框和滚动条的宽度,返回实际高度和宽度

5.scrollTop和scrollLeft

可读写属性

scrollTop:返回网页滚动条垂直方向滚去的距离;

scrollLeft:返回网页滚动条水平方向滚去的距离;

6.innerHeight和innerWidth

只读属性,返回窗口文档显示区的高度和宽度,不包括菜单栏、工具栏和滚动条的宽高。

IE不支持这些属性。它用 document.documentElementdocument.body (与 IE 的版本相关)的 clientWidth clientHeight 属性作为替代。

7.outerrHeight和outerWidth

outerHeight属性设置返回一个窗口的高度,包括所有界面元素(如工具栏/滚动条)。

outerWidth属性设置返回窗口的宽度,包括所有的界面元素(如工具栏/滚动)。

JavaScript属性中的offsetLeft、offsetWidth、clientWidth、scrollLeft、scrollWidth、innerWidth的更多相关文章

  1. JavaScript问题——在浏览器中的offsetLeft/offsetWidth等属性是什么?

    原文链接http://www.cnblogs.com/xiaohuochai/p/5828369.html https://blog.csdn.net/u012532033/article/detai ...

  2. style.left offsetLeft offsetwidth clientLeft clientWidth scrollLeft scrollWidth

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

  3. 一文看懂js中元素的滚动大小(scrollWidth,scrollHeight,scrollTop,scrollLeft)

    滚动大小(scroll dimension) 滚动大小指的是包含滚动内容元素的大小. 以下是与元素滚动内容大小相关的属性: 1. scrollWidth:在没有滚动条的情况下,元素内容的总宽度. 2. ...

  4. scrollWidth,offsetWidth,clientWidth,width;scrollHeight,offsetHeight,clientHeight,height;offsetTop,scrollTop,top;offsetLeft,scrollLeft,left还有谁

    题中的那么多属性让人头都大了,他们到底是什么意思?不同浏览器的实现是一样的吗?以下所有结论来自chrome版本 53.0.2785.89 (64-bit)和firefox版本52.0.2,操作系统ub ...

  5. HTML精确定位:scrollLeft,scrollWidth,clientWidth,offsetWidth

    HTML精确定位:scrollLeft,scrollWidth,clientWidth,offsetWidth scrollHeight: 获取对象的滚动高度. scrollLeft:设置或获取位于对 ...

  6. HTML精确定位:scrollLeft,scrollWidth,clientWidth,offsetWidth之完全详解

    HTML:scrollLeft,scrollWidth,clientWidth,offsetWidth到底指的哪到哪的距离之完全详解 scrollHeight: 获取对象的滚动高度. scrollLe ...

  7. 完全图解scrollLeft,scrollWidth,clientWidth,offsetWidth 获取相对途径,滚动图片(网上找的,未经试验,但觉得比较好)

    获取元素的位置属性可以通过 HTMLElement.offsetLeft HTMLElement.offsetTop 但是,这两个属性所储存的数值并不是该元素相对整个浏览器画布的绝对位置,而是相对于其 ...

  8. HTML精确定位:scrollLeft,scrollWidth,clientWidth,offsetWidth之全然具体解释

      HTML:scrollLeft,scrollWidth,clientWidth,offsetWidth究竟指的哪到哪的距离之全然具体解释scrollHeight: 获取对象的滚动高度. scrol ...

  9. H5,PC网页屏幕尺寸相关整理(scrollLeft,scrollWidth,clientWidth,offsetWidth)

    HTML:scrollLeft,scrollWidth,clientWidth,offsetWidth到底指的哪到哪的距离之完全详解scrollHeight: 获取对象的滚动高度. scrollLef ...

随机推荐

  1. android中onStartActivityForResult无返回值问题

    在activity间跳转传递参数,常见方法是通过onStartActivityForResult来做.不过今天使用 onStartActivityForResult的时候已经在上一个activity调 ...

  2. sim卡中的汉字存储格式

    Sim卡中的ucs2格式 Sim卡中的中文都是以ucs2格式存储的,ucs2和unicode只是字节序不同,unicode是小头在前,ucs2是大头在前. Ucs2与GB2312互换可以用VC中的Wi ...

  3. shell学习笔记

    shell学习笔记 .查看/etc/shells,看看有几个可用的Shell . 曾经用过的命令存在.bash_history中,但是~/.bash_history记录的是前一次登录前记录的所有指令, ...

  4. Navicat for mysql 导出sql文件 导入sql文件

    运行速度快 不受大小限制 安全高效

  5. ADB几种常见的错误及解决方法

    下面列举出几种常见的错误及解决方法. Q1:无效的安装包,安装包已损坏[INSTALL_FAILED_INVALID_APK] A1:请检查安装包是否完整.如果是xpk包,可以通过 手动安装xpk来检 ...

  6. ssh login nova vm

    $ sudo cat >> /usr/bin/nova-ssh  << END FIRST=$1 IDX=`expr index $1 "@"`if [[ ...

  7. UberX及以上级别车奖励政策(优步北京第四组)

    优步北京第四组: 定义为2015年7月20日至今激活的司机(以优步后台数据显示为准) 滴滴快车单单2.5倍,注册地址:http://www.udache.com/如何注册Uber司机(全国版最新最详细 ...

  8. #include <memory>

    1 auto_ptr 2 unique_ptr 1 auto_ptr C++的auto_ptr所做的事情,就是动态分配对象以及当对象不再需要时自动执行清理. 使用std::auto_ptr,要#inc ...

  9. 截取字符串一之slice

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

  10. 解决cookie无法删除的问题

    今天遇到一个cookie无法删除的问题,退出操作时cookie无法删除,必须在首页先进行退出操作,后来发现一个网友的博客,介绍了无法删除Cookie的原因,原来是我关于cookie的基础知识没搞清楚. ...