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 ...
随机推荐
- 电脑kail linux 连接手机Nethunter,手机和电脑互传文件
1.开启nethunter的ssh 修改/etc/ssh/sshd_config 参考:解决kali linux 开启ssh服务后连接不上的问题 2.如果在手机终端修改不了(我的就是怎么也改不了),可 ...
- 【转】Shell编程进阶篇(完结)
[转]Shell编程进阶篇(完结) 1.1 for循环语句 在计算机科学中,for循环(英语:for loop)是一种编程语言的迭代陈述,能够让程式码反复的执行. 它跟其他的循环,如while循环,最 ...
- 扫AR
- AT91RM9200---电源管理控制器(PMC)介绍
1.前言 PMC通过集成的两个OSC(一个主振荡器和一个慢时钟振荡器32.768khz)和两个PLLs产生系统所有的clock. PMC提供时钟给嵌入式处理器,并通过在IDLE模式下停止处理器时钟,直 ...
- eMMC基础技术8:操作模式1-boot mode
1.前言 eMMC总线操作包含: boot mode device identification mode interrupt mode data transfer mode 本文主要描述boot m ...
- proc文件系统、sysfs文件系统、kobject操作
Proc文件系统是提供一个接口给用户,让用户可以查看系统运行的一些状态信息,让用户修改内核的一些参数,比方说printk的打印级别就可以通过proc去修改 Sysfs文件系统, Sysfs is a ...
- javascript中cookie常用操作
//写cookies function setCookie(c_name, value, expiredays){ var exdate=new Date(); exdate.setTime(exda ...
- MyEclipse2017 CI-7的破解
下载了一个最新版的MyEclipse,网上下载了破解工具,按照步骤完成后破解失败.很纳闷,于是网上查看,说是破解器的版本须与MyEclipse的版本对应,不对应的话,是没有效果的.如我的是CI-7版本 ...
- eclipse自定义工具栏
设置:1.Window2.Customize Perspective说明:Tool Bar Visibility定义菜单栏,Shortcuts定义右键new菜单
- oracle 命令行
背景 看到当初竟然记录了命令行,想想自己用了多久才知道了命令行,好像有几年了吧.当时还记得买了两本oracle9的管理书籍,就跟见了九阴真经一样,从头到尾熟悉了好几遍,不过也大部分忘了交给老师了.以下 ...