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. Nginx模块开发入门(转)

    前言 Nginx是当前最流行的HTTP Server之一,根据W3Techs的统计,目前世界排名(根据Alexa)前100万的网站中,Nginx的占有率为6.8%.与Apache相比,Nginx在高并 ...

  2. js获取宽度设置thickbox百分比

    thickbox的宽高不好设为百分比,这样遇到不同的尺寸的电脑就会出现问题. 怎么做呢? 通过js来处理. <script type="text/javascript"> ...

  3. svn 问题汇总

    1.当删除了原来的仓库时,再次新建,更新版本时会出现这个问题:

  4. js获取手机重力感应api

    <html> <head> <title>DeviceOrientationEvent</title> <meta charset="U ...

  5. 【leetcode边做边学】二分查找应用

    很多其它请关注我的HEXO博客:http://jasonding1354.github.io/ 简书主页:http://www.jianshu.com/users/2bd9b48f6ea8/lates ...

  6. Android入门第十六篇之Style与Theme [转]

    本文来自http://blog.csdn.net/hellogv/ ,引用必须注明出处! 越来越多互联网企业都在Android平台上部署其客户端,为了提升用户体验,这些客户端都做得布局合理而且美观.. ...

  7. 编写可维护的JS 06

    7.事件处理 //典型用法 function handlerClick(event){ var popup = document.getElementById('popup'); popup.styl ...

  8. 显示标题栏中标题左侧的小图icon

    如何显示网站logo,定义网站收藏夹图标 代码与解释 <link rel="shortcut icon" href="/path/favicon.ico" ...

  9. BFC / hasLayout

    BFC - block formatting context 1.float的值不能为none 2.overflow的值不能为visible 3.display的值为table-cell,table- ...

  10. Deep Learning(深度学习)学习笔记整理系列之(四)

    Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...