JavaScript高级程序设计34.pdf
元素大小
偏移量
offsetHeight:元素在垂直空间上占用的大小,以像素计。包括元素的高度、(可见的)水平滚动条的高度、上边框高度和下边框高度。
offsetWidth:元素在水平空间上占用的大小,以像素计。包括元素的宽度、(可见的)垂直滚动条的宽度、左边框宽度和右边框宽度。
offsetLeft:元素的左外边框至包含元素的左内边框之间的像素距离。
offsetTop:元素的上外边框至包含元素的上内边框之间的像素距离。
其中offsetLeft和offsetTop属性与包含元素有关,包含元素的引用保存在offsetParent属性中,offsetParent属性不一定与parentNode的值相等,它是与包含元素最近的具有大小的元素
对于简单的CSS布局页面(未使用表格和内嵌框架布局),不断的使offsetTop与offsetParent、offsetLeft与offsetParent相加可以测量到整个元素的偏移量
客户区大小
客户区大小指的是元素内容及其内边距所占据的空间大小,clientWidth属性是内容区宽度加上左右内边距宽度,clientHeight属性是内容区高度加上上下内边距高度
偏移量与客户区大小都是只读的,每次访问都要重新计算,频繁访问会影响性能
滚动大小
滚动大小指的是包含滚动内容的元素的大小,有4个属性:
scrollHeight:在没有滚动条的情况下,元素内容的总高度。
scrollWidth:在没有滚动条的情况下,元素内容的总宽度。
scrollLeft:被隐藏在内容区域左侧的像素数,设置这个属性可以改变元素的滚动位置。
scrollTop:被隐藏在内容区域上方的像素数,设置这个属性可以改变元素的滚动位置。
在有滚动条的情况下,页面元素的总高度和总宽度是document.documentElement.scrollHeight和document.documentElement.scrollWidth。
对于不包含滚动条的页面而言
scrollHeight和scrollWidth与clientHeight和clientWidth之间的关系并不十分清晰,在基于document.documentElement查看这些属性会在不同浏览器之间发现一些不一致问题:
Firefox中两组属性始终相等,大小等于文档内容区域的实际尺寸,而非视口尺寸
Opera、Safari 3.1及更高版本、Chrome中这两组属性是有差别的,其中scrollHeight和scrollWidth等于视口大小, 而clientHeight和clientWidth等于文档内容区域的大小
IE(标准模式)两组属性并不相等,其中scrollHeight和scrollWidth等于文档内容区域的大小, 而clientHeight和clientWidth等于视口大小,(与第二条正相反)
在跨浏览器情况下,确定文档的总高度必须取得scrollHeight/clientHeight与scrollWidth/clientWidth的最大值Math.max()
确定元素大小
有一个getBoundingClientRect()方法,这个方法会返回一个矩形对象,包含4个属性:left、top、right和bottom,这些属性给出了元素在页面中相对于视口的位置,但是浏览器的实现会稍有不同,IE8及之前版本认为文档左上角坐标是(2,2),其他浏览器包括IE9正确地把(0,0)作为起点坐标
JavaScript高级程序设计34.pdf的更多相关文章
- JavaScript高级程序设计61.pdf
JSON对象 早期的JSON解析器就是使用JavaScript的eval()函数,ECMAScript5对解析JSON的行为做出了规定,定义了全局对象JSON. JSON对象有2个方法:stringi ...
- JavaScript高级程序设计60.pdf
错误处理 try-catch语句 try{ //可能会导致错误的代码 }catch(error){ //在错误发生时如何处理 } error是一个包含着错误信息的对象,它有一个message属性,保存 ...
- JavaScript高级程序设计58.pdf
15章 使用Canvas绘图 略 16章 HTML5脚本编程 HTML5规范了新的HTML标记和JavaScript API,以便简化创建动态Web界面的工作 跨文档消息传递 简称XDM,指来自不同域 ...
- JavaScript高级程序设计57.pdf
表单序列化 首先了解一下浏览器如何将数据发送给服务器 对表单字段的名称和值进行URL编码,使用和号(&)分隔 不发送禁用的表单字段 只发送勾选的复选框和单选按钮 不发送type为“reset” ...
- JavaScript高级程序设计55.pdf
输入模式 HTML5为文本字段新增了pattern属性,这个属性的值是一个正则表达式,用于匹配文本框中的值 例如,只想在允许在文本字段中输入数值 <input type="text&q ...
- JavaScript高级程序设计54.pdf
过滤输入 对于一些浏览器,可以使用正则表达式里的text()测试用户按下的按键,Firefox和safari(3.1版本之前)会对向上向下.退格键和删除键触发keypress事件,在Firefox中, ...
- JavaScript高级程序设计53.pdf
共有的表单字段方法 每个表单字段都有两个方法:focus()和blur(),其中focus()用于将浏览器焦点设置到表单字段,激活表单字段.可以侦听页面的load事件 EventUtil.addHan ...
- JavaScript高级程序设计52.pdf
表单脚本 表单的基础知识 在HTML中,表单是由<form>元素表示的,在Javascript对应的是HTMLFormElement类型,它继承自HTMLElement,因此具有与其他HT ...
- JavaScript高级程序设计50.pdf
hashchange事件 HTML5新增了hashchange事件,以便在URL的参数列表(及URL中“#”号后面的所有字符串)发生变化时通知开发人员,之所以新增这个事件,是因为在Ajax应用中,开发 ...
随机推荐
- bzoj1004:[HNOI2008]Cards
思路:由于题目给出了置换,又要求本质不同的方案数,考虑使用Burnside引理,Burnside引理即通过所有置换和原来相同的方案数之和除以方案数总数,而对于某一个置换要使置换后得到的与原来的相同,就 ...
- Chi Square Distance
The chi squared distance d(x,y) is, as you already know, a distance between two histograms x=[x_1,.. ...
- 安装会声会影x8后打不开的解决方法
操作系统:Windows 7 症状:双击程序图标后一直停留在购买介绍页,主程序界面一直无法打开 解决方法:删除系统补丁KB3126587和KB3126593
- spark - 将RDD保存到RMDB(MYSQL)数据库中
SCALA连接数据库批量插入: scala> import java.sql.DriverManager scala> var url = "jdbc:mysql://local ...
- Razor与ASPX语法比较
- 获取本机IP、mac地址、计算机名
python获取本机IP.mac地址.计算机名 在python中获取ip地址和在php中有很大不同,我们先来看一下python 获得本机MAC地址: >>> import uuid ...
- python 数据类型(元组(不可变列表),字符串
元组(不可变列表) 创建元组: ages = (11, 22, 33, 44, 55) 或 ages = tuple((11, 22, 33, 44, 55)) 一般情况下是不需要被人该的数值才使用元 ...
- 如何彻底删除PPA软件库
添加一个PPA源 sudo add-apt-repository ppa:user/ppa-name 如添加cairo-dock到weekly update源 sudo add-apt-reposit ...
- caller和callee的区别
①.caller caller返回一个函数的引用,这个函数调用了当前的函数. 使用这个属性要注意: 1 这个属性只有当函数在执行时才有用 2 如果在javascript程序中,函数是由顶层调用的,则返 ...
- HIVE编程指南之HiveQL的学习笔记1
// HiveQLa) 数据定义语言1 数据库表的一个目录或命名空间,如果用户没有指定数据库的话,那么将会使用默认的数据库default-----创建数据库CREATE DATABASE guoyon ...