概要

狭义的 DOM API 仅仅包含 DOM 树形结构相关的内容。

DOM 中的所有的属性都是用来表现语义的属性,CSSOM 的则都是表现的属性。

CSSOM 是 CSS 的对象模型,在 W3C 标准中,它包含两个部分:

  • 描述样式表和规则等 CSS 的模型部分(CSSOM)
  • 跟元素视图相关的 View 部分(CSSOM View)。

CSSOM

在实际使用中,CSSOM View 比 CSSOM 更常用一些,因为我们很少需要用代码去动态地管理样式表。

CSSOM View

1、窗体API

  • moveTo(x, y) 窗口移动到屏幕的特定坐标;
  • moveBy(x, y) 窗口移动特定距离;
  • resizeTo(x, y) 改变窗口大小到特定尺寸;
  • resizeBy(x, y) 改变窗口大小特定尺寸。
  • window.open(uri,target,size) 第三个参数描述窗口的尺寸信息
window.open("about:blank", "_blank" ,"width=100,height=100,left=100,right=100" )

ps: 出于安全考虑,一些浏览器没有实现。

2、滚动API

视口滚动

在window对象上的,是顶层容器滚动提供的API,大部分移动端浏览器会对这部分api做性能优化。它和元素滚动API不同。

  • scrollX 属性,X方向上当前滚动的距离。

  • scrollY 属性,Y方向上当前滚动的距离。

  • scroll(x,y)方法,使得页滚动到指定位置。别名scrollTo,

  • scrollBy(x,y)方法,使页面滚动指定距离。

要监听视口滚动事件,我们需要在document对象上绑定scroll事件监听函数。

document.addEventListener("scroll",function(event){
//......
});

元素滚动

在Element类,为了支持滚动,加入了以下API。

  • scrollTop 属性,表示Y方向上的当前滚动的距离。
  • scrollLeft 属性,表示X方向上的当前滚动的距离。
  • scrollWidth 属性,元素滚动内容的宽度,一般>=元素宽度。
  • scrollHeight 属性,元素滚动内容的高度,一般>=元素高度。
  • scroll(x,y) 方法,使元素滚动到指定位置,别名scrollTo
  • scrollBy(x,y) 方法,使元素滚动指定距离。

元素也支持scroll事件

element.addEventListener("scroll", function(event){
//......
})

3、布局API

全局尺寸信息

  • window.innerHeight 视口的高
  • window.innerWidth 视口的宽
  • window.devicePixelRatio 像素比(DPR),物理像素和css像素单位的倍率关系。
  • window.screen

window.screen.width, window.screen.height 设备的屏幕尺寸。

获取Element对象的尺寸信息。

  • element.clientWidth\element.clientHeight

属性表示元素的内部宽度\高度,以像素计。该属性包括内边距,但不包括滚动条(如果有)、边框和外边距。

该属性值会被四舍五入为一个整数。如果你需要一个小数值,可使用 element.getBoundingClientRect()。

  • element.getBoundingClientRect()

    返回一个ClientRectd对象包含以下属性。
bottom	 float	Y 轴,相对于视口原点(viewport origin)矩形盒子的底部。只读。
height float 矩形盒子的高度(等同于 bottom 减 top)。只读。
left float X 轴,相对于视口原点(viewport origin)矩形盒子的左侧。只读。
right float X 轴,相对于视口原点(viewport origin)矩形盒子的右侧。只读。
top float Y 轴,相对于视口原点(viewport origin)矩形盒子的顶部。只读。
width float 矩形盒子的宽度(等同于 right 减 left)。只读。
x float X 轴,相对于视口原点(viewport origin)矩形盒子的左侧。只读。
y float Y 轴,相对于视口原点(viewport origin)矩形盒子的顶部。只读。
  • getClientRects()

    会返回一个列表,里面包含元素对应的每一个盒所占据的客户端矩形区域.

CSSOM的更多相关文章

  1. CSSOM视图模式(CSSOM View Module)相关整理:scrollWidth,scrollLeft,offsetLeft,clientX ,offsetX 定义和区别

    转:http://www.zhangxinxu.com/wordpress/2011/09/cssom%E8%A7%86%E5%9B%BE%E6%A8%A1%E5%BC%8Fcssom-view-mo ...

  2. CSSOM之getComputedStyle,currentStyle,getPropertyValue,getAttribute

    js关于CSSOM编程的样式相关几个常用的方法 webkit:getComputedStyle,getPropertyValue IE:currentStyle,getAttribute 前言 jqu ...

  3. CSSOM视图模式

    相关技术文章: CSSOM视图模式(CSSOM View Module)相关整理 W3C CSSOM View Module

  4. CSSOM View Module

    就在8月份,也就是上次gf大姨妈来的时候,W3C出炉了CSSOM视图模块(CSS Object Model View)草案.CSSOM视图模块(CSSOM View Module)定义了一些 API, ...

  5. [转] CSSOM视图模式(CSSOM View Module)相关整理

    以下就是一些API属性的相关内容,包括兼容性,使用,测试等. 一.Window视图属性 这些属性可以hold住整个浏览器窗体大小.微软则将这些API称为“Screenview 接口”.包括:inner ...

  6. 页面渲染机制(一、DOM和CSSOM树的构建)

    1.HTML的加载 HTML是一个网页的基础,下载完成后解析 2.其他静态资源加载 解析HTML时,发现其中有其他外部资源链接比如CSS.JS.图片等,会立即启用别的线程下载. 但当外部资源是JS时, ...

  7. CSSOM之getboundingclientrect和getclientrects

    TextRectangle 对于文本对象,W3C提供了一个 TextRectangle 对象,这个对象是对文本区域的一个解释. 对于 i,span,em等display 是inline的标签,在书写文 ...

  8. CSSOM视图模式(CSSOM View Module)相关整理(转载)

    原文地址 http://www.zhangxinxu.com/wordpress/?p=1907 一.Window视图属性 这些属性可以hold住整个浏览器窗体大小.微软则将这些API称为“Scree ...

  9. CSSOM视图模式(CSSOM View Module)

    一.Window视图属性(window对象) 这些属性可以获取住整个浏览器窗体大小.微软则将这些API称为“Screenview 接口” innerWidth 属性和 innerHeight 属性pa ...

随机推荐

  1. python之GIL理解

    GIL(Global Interpreter Lock) 全局解释器锁 python3中是假的多线程,它不是真正的并行,是利用了cpu上下文的切换而已.同一时间只能有一个线程使用共享数据,其它线程处于 ...

  2. linux内核分析第四周学习笔记

    linux内核分析第四周学习笔记 标签(空格分隔): 20135328陈都 陈都 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.co ...

  3. 在centOS中安装mongodb

    自己在一个CentOS6.6的系统中按照官网的说明,走了一遍的安装过程,记录一下. 看过个mongo的视频,上面介绍的安装是用源码安装,而官网上说需要gcc4.8.3的版本,还有scons的编译工具, ...

  4. 电梯V1.0

    电梯V1.0 GitHub仓库地址 Problem 一栋3层的大楼(楼层编号0-2),设有一台无限载重的电梯,初始时电梯停在0层.电梯移动1层的耗时为1,在某一层停靠的耗时为1(时间初始为0).电梯不 ...

  5. “数学口袋精灵”第二个Sprint计划(第三天)

    “数学口袋精灵”第二个Sprint计划----第三天进度 任务分配: 冯美欣:欢迎界面的背景音乐完善 吴舒婷:游戏界面的动作条,选择答案后的音效 林欢雯:代码算法设计 进度:   冯美欣:欢迎界面背景 ...

  6. css3新增的伪类和伪元素

    E:target事件属性可返回事件的目标节点(触发该事件的节点),如生成事件的元素.文档或窗口 E:disabled表示不可点击的表单控件 E:enabled表示可点击的表单控件 E:checked表 ...

  7. Oracle 数据库执行 操作系统的命令

    1 Linux环境下面的处理 在sqlplus 里面 添加一个 ! 就可以执行 但是 因为Oracle 必须为非root用户 所以很多命令可能无法执行: 2. Windows 环境执行命令的方式 是在 ...

  8. Graph Database & 图形数据库

    Graph Database 图形数据库 https://en.wikipedia.org/wiki/Graph_database cayley https://github.com/cayleygr ...

  9. Spring之IOC实现原理

  10. 新版 Chrome Ajax 跨域调试

    一.前言 web 开发中 Ajax 是十分常见的技术,但是在前后端使用接口对接的调试过程中不可避免会碰到跨域问题.今天我给大家介绍一个十分简单有效的方法. 跨域经典错误 二.Chrome 跨域设置 首 ...