1. client 客户区大小

1.1. clientHeight和clientWidth

element.clientHeight表示元素可视区域的高度,包括可视区域中元素的

CSS height+padding , 不包括边框、滚动条、不可见部分、margin。

1.2. clientLeft和clientTop

1.3. 获取浏览器可视区大小(兼容处理)

2. offset偏移量

2.1. offsetParent

是一个只读属性,获取的最近的定位的父元素。

1)如果child有定位的父元素,offsetParent就是定位的父元素;

2)如果没有定位的父元素,offsetParent就是body

2.2. offsetLeft和offsetTop

相对于定位的父级offsetParent内边距的距离,如果没有定位父元素,则以body为准。(即child的border边界距离offsetParent padding边界的距离,不包括child的margin部分)

2.2.1. 与style.left的区别:

1)、style.left只能获取行内样式

2)、offsetLeft只读,style.left可读可写

3)、offsetLeft是数值,style.left是字符串并且有单位px

4)、如果没有加定位,style.left获取的数值可能是无效的

5)、最大区别在于offsetLeft以border左上角为基准,style.left以margin左上角为基准

2.3. offsetWidth 和 offsetHeight

用来得到对象的大小,可以获得元素在内嵌样式里的宽度和高度

offsetWidth的组成: width+padding+border

2.3.1. 与style.width的区别

1)demo.style.witdh只能获取到行内样式,如果样式写到了其他地方,甚至根本就没写,便无法获取

2)style.width是字符串(而且带单位),offsetWidth是数字

3)demo.style.width可以设置行内样式,offsetWidth是只读属性

3. scroll 滚动大小

3.1. scrollHeight 和 scrollWidth 滚动内容的大小

element.scrollHeight属性是只读的,它包括:

滚动内容的高度(撑开之后内容的大小) height + padding 不包括边框

 <style>
2 * {
3 margin: 0;
4 padding: 0;
5 }
6 #box {
7 width: 100px;
8 height: 100px;
9
10 border: 5px solid red;
11 padding: 20px;
12 }
13 </style>
14
15
16
17 //height + padding 获取撑开之后内容的大小
18 console.log(box.scrollHeight);
19
20 //border + width + padding 盒子的大小
21 console.log(box.offsetHeight);

3.2. scrollTop 和scrollLeft

scrollTop 获取滚动出去的距离

onscroll 滚动事件

3.2.1. 获取页面滚动出去的距离以及兼容处理

scrollTop、scrollLeft在获取页面滚动时有兼容问题

标准浏览器下: document.body.scrollTop

Ie8下: document.documentElement.scrollTop

window.pageYOffset:是DOM中标准的属性,但是IE的老版本不支持

3.2.2. 封装兼容浏览器函数function scroll()

client、offset、scroll的更多相关文章

  1. 前端 ---client、offset、scroll系列

    client.offset.scroll系列   1.client系列 代码如下: <!DOCTYPE html> <html> <head> <meta c ...

  2. python 全栈开发,Day52(关于DOM操作的相关案例,JS中的面向对象,定时器,BOM,client、offset、scroll系列)

    昨日作业讲解: 京东购物车 京东购物车效果: 实现原理: 用2个盒子,就可以完整效果. 先让上面的小盒子向下移动1px,此时就出现了压盖效果.小盒子设置z-index压盖大盒子,将小盒子的下边框去掉, ...

  3. 4.client、offset、scroll系列

    client.offset.scroll系列 他们的作用主要与计算盒模型.盒子的偏移量和滚动有关 clientTop 内容区域到边框顶部的距离 ,说白了,就是边框的高度 clientLeft 内容区域 ...

  4. JavaScript-client、offset、scroll、定时器

    client offset scroll client.offset.scroll系列 他们的作用主要与计算盒模型,盒子的偏移量和滚动有关 clientTop 内容区域到边框顶部的距离, 说白了, 就 ...

  5. JavaScript学习笔记5 之 计时器 & scroll、offset、client系列属性 & 图片无缝滚动

    一.计时器 setInterval ( 函数/名称 , 毫秒数 )表示每经过一定的毫秒后,执行一次相应的函数(重复) setTimeout ( 函数/名称 , 毫秒数 ) 表示经过一定的毫秒后,只执行 ...

  6. 区别client、offset、scroll系列以及event的几个距离属性

    element元素结点属性 一. offset系列 1.offsetWidth 和offsetHeight element.offsetWidth是一个只读属性,它包括了: css width + p ...

  7. python 全栈开发,Day54(关于DOM操作的相关案例,JS中的面向对象,定时器,BOM,client、offset、scroll系列)

    04-jQuery的属性操作 jquery的属性操作模块分为四个部分:html属性操作,dom属性操作,类样式操作和值操作 html属性操作:是对html文档中的属性进行读取,设置和移除操作.比如at ...

  8. 各种位置和高度计算:.position()、.offset()、.outerHeight()、.scrollTop、.scrollHeight、.clientHeight

    1..position()和.offset() jquery的.position()获取相对于最近的position为relative或absolute的父元素的偏移,返回.position().le ...

  9. 差别client、offset、scroll系列以及event的几个距离属性

    element元素结点属性 一. offset系列 1.offsetWidth 和offsetHeight element.offsetWidth是一个仅仅读属性,它包含了: css width + ...

随机推荐

  1. 《javascript 学习笔记》

    注释 1. // This is an in-line comment. 2. /* This is a  multi-line comment */ 七种data types(数据类型) undef ...

  2. java基础面试题:java中实现多态的机制是什么?

    靠的是父类或接口的引用指向子类或实现类的对象, 调用的方法是内存中正在运行的那个对象的方法.

  3. tomcat服务器用Servlet类查找磁盘文件上的Json信息,如果匹配则在浏览器上显示出该条内容的全部信息

    package com.swift; import java.io.BufferedReader; import java.io.FileInputStream; import java.io.IOE ...

  4. Ubuntu 14.04 LTS 触摸板无法使用

    c16b上,触摸板不能使用,查找后发现,需要在加载驱动时增加参数. 如下所说: 1.使用以下命令后,触摸板可以使用 sudo modprobe -r psmouse sudo modprobe psm ...

  5. 1042: [HAOI2008]硬币购物

    Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 3209  Solved: 2001[Submit][Status][Discuss] Descript ...

  6. MySQL - FULL JOIN

    SQL FULL JOIN 关键字 只要其中某个表存在匹配,FULL JOIN 关键字就会返回行. FULL JOIN 关键字语法 SELECT column_name(s) FROM table_n ...

  7. beautifulsoup解析

    beautifulsoup解析 python独有 优势:简单.便捷.高效 - 环境安装 需要将pip源设置为国内源 -需要安装:pip install bs4 bs4在使用时需要一个第三方库 pip ...

  8. GTF/GFF

  9. Entrez Direct

    安装 cd ~/bin/bashperl -MNet::FTP -e \'$ftp = new Net::FTP("ftp.ncbi.nlm.nih.gov", Passive = ...

  10. 第三模块 面向对象& 网络编程基础 实战考核

    1.简述构造方法和析构方法. 构造方法(__init__):主要作用是实例化时给实例一些初始化参数,或执行一些其它的初始化工作,总之因为这个__init__只要一实例化, 就会自动执行,不管你在这个方 ...