第52天:offset家族、scroll家族和client家族的区别

简介: 一、offset家族1、offsetWidth offsetHeight offsetLeft offsetTop offsetParent共同组成了offset家族,用来获取元素尺寸。offsetWidth = width + padding + borderoffsetHeight = height + padding + border2、offsetLeft 和 offsetTop:返回距离上级带有定位的盒子左边的位置,如果父级元素没有定位,则以body为准offsetLeft从父亲的padding开始算,父亲的border不算。
一、offset家族
1、offsetWidth offsetHeight offsetLeft offsetTop offsetParent共同组成了offset家族,用来获取元素尺寸。

offsetWidth = width + padding + border
offsetHeight = height + padding + border

2、offsetLeftoffsetTop:
返回距离上级带有定位的盒子左边的位置,如果父级元素没有定位,则以body为准
offsetLeft从父亲的padding开始算,父亲的border不算offsetParent:返回该对象的带有定位的父级,如果当前元素的父级元素没有
进行CSS定位,则offsetParent为body.如果当前元素的父级元素中有定位,则
取最近的父级元素

3、offsetLeftstyle.left的区别
   1、最大区别在于offsetLeft可以返回没有定位的盒子距离左侧的位置
   而style.left不可以。
   2、offsetTop返回的是数字,而style.top返回的是字符串(24px),除了数字外,还
   带有单位。
   3、offsetTop只读,而style.top读写
   4、如果没有给HTML元素设置top样式,style.top返回的是空字符串
二、scroll家族
1、scroll家族主要包括scrollWidth、scrollHeight、scrollLeft、 scrollTop、 onscroll事件 scrollWidth/scrollHeight是指内容的高度 scrollLeft/scrollTop被卷去的左侧和头部(浏览器无法显示的部分) 一般调用document.body.scrollTop 2、onscroll滚动事件(window.onscroll = func) 屏幕每滚动一次,哪怕只有一个像素也会触发这个事件。这样就可以检测屏幕滚动了 只能有一个写了多个以最后一个为准,同理 window.onload 未声明 DTD(谷歌只认识他)
(IE9+认识他)document.body.scrollTop 已经声明DTD(IE678只认识他)
(IE9+任何时候) document.documentElement.scrollTop 火狐/谷歌/ie9+以上支持的(不管DTD)
3、window.pageYOffset 滚动到指定位置:window.scrollTo 把内容滚动到指定的坐标 scrollTo(xpos,ypos) xpos 必需。要在窗口文档显示区左上角显示的文档的 x 坐标。 ypos 必需。要在窗口文档显示区左上角显示的文档的 y 坐标

三、client家族
 1、 clientWidth:获取网页可视区宽度
  clientHeight:获取网页可视区域的高度
  如果是盒子调用,指的是盒子本身
如果是body/html调用,指的是可视区域的大小
clientX:鼠标距离可视区域左侧距离(event调用)
clientY:鼠标距离可视区域上侧距离(event调用)
clientTop/clientLeft盒子的border宽高

2、client家族之:检浏览器宽/高度(可视区域)
    1、ie9及其以上的版本
   window.innerWidth/Height  
    2、标准模式(有DTD)(“CSS1Compat”)
   document.documentElement.clientWidth
   document.documentElement.clientHeight
    3、怪异模式 (没有DTD)
   document.body.clientWidth
   document.body.clientHeight
四、三个家族的区别:
  区别1:(offset/scroll/client宽高)

clientWidth  = width  + padding
clientHeight = height + padding
offsetWidth  = width  + padding + border
offsetHeight = height + padding + border
scrollWidth   = 内容宽度(不包含border)
scrollHeight  = 内容高度(不包含border)
  区别2:(offset/scroll/client上下)
offsetTop/offsetLeft :
        调用者:任意元素。(盒子为主)
        作用:距离父系盒子中带有定位的距离scrollTop/scrollLeft:(盒子也可以调用,必须有滚动条)
        调用者:document.body.scrollTop/.....(window)
        作用:浏览器无法显示的部分(被卷去的部分)。
clientY/clientX:(clientTop/clientLeft 值的是border)
        调用者:event.clientX(event)
        作用:鼠标距离浏览器可视区域的距离(左、上)
在触发DOM上的某个事件时,会产生一个事件对象event,这个对象中包含着所有与事件有关的信息。所有浏览器都支持event对象,但支持的方式不同。
比如鼠标操作时候,会添加鼠标位置的相关信息到事件对象中。(类似Date)
普通浏览器支持 event(传参)
ie 678 支持 window.event(无参)

 
clientX/clientY  
当前窗口的左上角为基准点
pageX/pageY低版本浏览器(IE67)不支持
以当前文档的左上角为基准点   
screenX/screenY
当前屏幕的左上角为基准点

 

相关文章
|
3月前
|
存储 人工智能 编译器
learn_C_deep_5 (温故知新、sigend char a = -128的深度理解、unsigned int类型的写法规范)
learn_C_deep_5 (温故知新、sigend char a = -128的深度理解、unsigned int类型的写法规范)
|
11月前
|
JSON Kubernetes Cloud Native
带你读《云原生应用开发:Operator原理与实践》——2.2.2 Client-go 主体结构
带你读《云原生应用开发:Operator原理与实践》——2.2.2 Client-go 主体结构
|
存储 搜索推荐 程序员
apaas平台是什么意思 apaas paas saas之间区别
当我们在接触到apaas、paas、saas这些英文缩写时,通常都会较难理解其中的含义,但它们本质上又存在着根本的区别,本文给大家简单说明一下它们主要的区别。
apaas平台是什么意思 apaas paas saas之间区别
|
存储 测试技术 iOS开发
MMKV--基于 mmap 的 iOS 高性能通用 key-value 组件
MMKV 是基于 mmap 内存映射的 key-value 组件,底层序列化/反序列化使用 protobuf 实现,性能高,稳定性强。
526 0
MMKV--基于 mmap 的 iOS 高性能通用 key-value 组件
|
存储 安全 Cloud Native
Back to Basic,定义下一代的云
2022年6月13日举办的2022阿里云峰会上,阿里云宣布今年最重要策略是“B2B”,也就是“Back to Basic”,回到云计算的本质,坚持在技术的长征路上,不断取得新的突破。如今云计算已经进入了一个关键的突破期,如果我们定义好下一代的云,那么中国云计算就有超车机会。
955 11
Back to Basic,定义下一代的云
|
Linux 虚拟化
top中的st含义—虚拟化底层从你的vm里偷了多少资源
linux在top中打印中有st显示项,这一显示项单位为百分比,它的值表明你的系统花了百分之多少等待得到真正的cpu资源。 在正常情况下在云平台下st最好为0,这表明你的vm得到了所有必要的cpu资源。
4131 0
带你读《计算机组成与体系结构:性能设计(英文版·原书第10版)》之三:A Top-Level View of Computer Function and Interconnection
本书以Intel x86体系结构和ARM两个处理器系列为例,将当代计算机系统性能设计问题与计算机组成的基本概念和原理紧密联系起来,介绍了当代计算机体系结构的主流技术和最新技术。本书作者曾13次获a得美国教材和学术专著作者协会颁发的年度最佳计算机科学教材奖。目前,他是一名独立顾问,为众多计算机和网络制造商、软件开发公司以及政府前沿研究机构提供服务。

热门文章

最新文章