element对象
一、offset、client、scroll
clientWidth,clientHeight,clientLeft,clientTop;
offsetWidth,offsetHeight,offsetLeft,offsetTop,offsetParent;
scrollWidth,scrollHeight,scrollLeft,scrollTop。
二、clientWidth、offsetWidth、scrollWidth的区别
// 网页总高度
document.documentElement.offsetHeight
document.documentElement.scrollHeight
document.body.offsetHeight
document.body.scrollHeight
// 视口高度
window.innerHeight // 包括滚动条
document.documentElement.clientHeight // 不包括滚动条
1、元素内容的可视区的宽度,不包含滚动条边线和border,只包含width、padding,会随元素显示大小的变化而改变。
clientWidth = padding + width;
2、元素整体的实际宽度,包含滚动条边线,border、width、padding,会随元素显示大小的变化而改变。
offsetWidth = padding + width + border;
3、元素的实际内容的宽度,不包含滚动条边线,包含width、padding及溢出内容,会随元素中内容超过可视区后而变大。
scrollWidth = padding + 包含内容的完全宽度;
4、元素内容不超过可视区时,无滚动条。
clientWidth = scrollWidth
5、元素内容超过可视区时,有滚动条。
clientWidth < scrollWidth
element.scrollHeight - element.scrollTop === element.clientHeight
//滚动到内容底部时,上面等式为true;
//没有滚动到内容底部时,上面等式为false;
//判断用户是否滚动到了区块的底部。
三、clientTop、offsetTop、scrollTop的区别
元素的边框厚度,距离父元素的高度,滚动的高度。
//整个网页滚动的垂直距离
document.documentElement.scrollTop
获取元素到顶部的距离用offsetTop,有时并不准确,可以用getBoundingClientRect(),用法如下:
function getRect(oDiv){
var rect = oDiv.getBoundingClientRect();
var top = document.documentElement.clientTop;
var left = document.documentElement.clientLeft;
//兼容IE
return{
top: rect.top - top,
bottom: rect.bottom - top,
left: rect.left-left,
right: rect.right - left
}
}
var obj = GetRect(oDiv);
console.log(obj.top); //元素上边到视图顶部的距离
console.log(obj.left); //元素左边到视图左部的距离
console.log(obj.bottom); //元素下边到视图顶部的距离
console.log(obj.right); //元素右边到视图左部的距离
四、elem.offsetTop和elem.style.top的区别
elem.offsetTop和elem.style.top都可以获得HTML元素距离上方或外层元素的位置。
1、返回值不同
elem.offsetTop返回的是数字,而elem.style.top返回的是字符串,数字+px。
2、读写可行性
elem.offsetTop只读,而elem.style.top可读写。
element对象的更多相关文章
- JavaScript基础20——element对象
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- javascript高级程序设计---Element对象
Element对象对应网页的HTML标签元素.每一个HTML标签元素,在DOM树上都会转化成一个Element节点对象(以下简称元素节点).元素节点的nodeType属性都是1,但是不同HTML标签生 ...
- DOM - Element 对象
http://www.runoob.com/dom/dom-element.html Element 对象 Element 对象代表 XML 文档中的一个元素.元素可以包含属性.其他元素或文本.如果一 ...
- JavaScript -- 时光流逝(十二):DOM -- Element 对象
JavaScript -- 知识点回顾篇(十二):DOM -- Element 对象 (1) element.accessKey: 设置或返回accesskey一个元素,使用 Alt + 指定快捷键 ...
- THML DOM / Element 对象操作
随着Vue等MVVM框架流行,操作DOM已经不想之前那么频繁,因此很多DOM的操作已经陌生,特此回顾HTML中DOM操作 获取Element节点 熟悉的有 通过ID获取,返回element对象 ...
- DOM基础知识(Node对象、Element对象)
5.Node对象 u 遍历节点 u 父节点 .parentNode - 获取父节点—> 元素节点或文档节点 .parentElement - 获取父元素节点—> 元素节点 u 子节 ...
- 浏览器端-W3School-JavaScript-HTML DOM:HTML DOM Element 对象
ylbtech-浏览器端-W3School-JavaScript-HTML DOM:HTML DOM Element 对象 1.返回顶部 1. HTML DOM Element 对象 HTML DOM ...
- 关于onclick中的event对象和element对象
event.srcElement:引发事件的目标对象,常用于onclick事件. event.fromElement:引发事件的对象源,常用于onmouseout和onmouseover事件. eve ...
- Element对象 常用属性与常用方法
常用属性 .children 子元素列表 .childElementCount 子元素数量 .firstElementChild 第一个子元素 .lastElementChild 最后一个子元素 .c ...
随机推荐
- swift中闭包的学习。
在swift中的闭包等同于OC中的block,它的用途就是在于可以包装一段代码在必要的时候进行调用. 闭包定义: {(类型列表) -> 返回值 in // 多条swift语句 // 执行代码 ...
- Debian 9 源配置
Debian 9: deb http://mirrors.163.com/debian/ stretch main non-free contrib deb http://mirrors.163.co ...
- qt无法使用终端启动的解决方法
在Terminal中直接输入命令就能打开QtCreator, i.e. ~$ qtcreator 就可以打开Qt Creator了. 想完成这个功能的原因是,一般在Linux下打命令比较方便,而师兄给 ...
- volatile的深入理解--【sky原创】
volatile 所有定义的变量都是在内存上面的, 例如: int i = 10; int j = i; int k = i; i = 10; 是初始化的变量,存放在数据段,未初始化的变量存放在 ...
- 64位Win7系统WMware安装Mac OS
1. 准备工作 l VMWare Workstation,我的版本是 l MAC OS安装光盘镜像文件,种子地址 http://www.kuaipan.cn/file/id_611 ...
- (记录合并)union和union all的区别
SQL UNION 操作符 UNION 操作符用于合并两个或多个 SELECT 语句的结果集. 请注意,UNION内部的SELECT语句必须拥有相同数量的列.列也必须拥有相似的数据类型.同时,每条SE ...
- Shell 中test 单中括号[] 双中括号[[]] 的区别
Shell test 单中括号[] 双中括号[[]] 的区别 在写Shell脚本的时候,经常在写条件判断语句时不知道该用[] 还是 [[]],首先我们来看他们的类别: $type [ [[ test ...
- robotium之does not have a signature matching问题
今天发现个很low的问题,脚本都写好了,运行Robotium测试用例时报错如下: [2017-03-01 09:58:54 - baiduAppTest] Test run failed: Permi ...
- 一台电脑,两个及多个git账号配置
1. 生成两[三]个ssh公钥私钥 方法参照:http://www.cnblogs.com/fanbi/p/7772812.html第三步骤 假定其中一个是id_rsa, 另一个时id_rsa_two ...
- Golang依赖管理工具:glide从入门到精通使用
这是一个创建于 2017-07-22 05:33:09 的文章,其中的信息可能已经有所发展或是发生改变. 介绍 不论是开发Java还是你正在学习的Golang,都会遇到依赖管理问题.Java有牛逼轰轰 ...