html 滚动条 scrolltop scrollheight,浅谈JavaScript中scrollTop、scrollHeight、offsetTop、offsetHeight...

article/2025/9/7 21:17:30

浅谈JavaScript中scrollTop、scrollHeight、offsetTop、offsetHeight

发布时间:2020-07-17 09:27:20

来源:亿速云

阅读:223

作者:小猪

小编这次要给大家分享的是浅谈JavaScript中scrollTop、scrollHeight、offsetTop、offsetHeight,文章内容丰富,感兴趣的小伙伴可以来了解一下,希望大家阅读完这篇文章之后能够有所收获。

clientHeight,只读

clientHeight可以用公式 CSS height + CSS padding - 水平滚动条的高度 (如果存在) 来计算。

a771234788d382d937cd74221b4c100c.png

如图,这样一个div,它的clientHeight为95,计算:50(height)+30(padding-top)+30(padding-bottom)-15(经测量滚动条高度就是15)=95

clientTop,只读

一个元素顶部边框的宽度(以像素表示)。嗯。。就只是border-top-width

类似的属性还有一个clientLeft,顾名思义……

offsetHeight,只读

元素的offsetHeight是一种元素CSS高度的衡量标准,包括元素的边框、内边距和元素的水平滚动条(如果存在且渲染的话),是一个整数。

还是上面的图,div的offsetHeight为112。计算:50+60(上下内边距)+2(上下边框)=112

offsetTop,只读

HTMLElement.offsetParent是一个只读属性,返回一个指向最近的包含该元素的定位元素。如果没有定位的元素,则offsetParent为最近的table,table cell或根元素(标准模式下为html;quirks 模式下为body)。当元素的style.display设置为 "none" 时,offsetParent返回null。

它返回当前元素相对于其offsetParent元素的顶部的距离。

还是上面那张图,div的offsetTop为20,因为margin-top是20,距离html顶部的距离是20...

scrollHeight,只读

实话,这么久了,竟然一直搞错这个scroll相关属性,其实它描述的是outer的属性,而窝一直取inner的属性值,难怪scrollTop一直是0。。。

Document

#outer {

margin: 100px 50px;

background: url(http://images.cnblogs.com/cnblogs_com/wenruo/873448/o_esdese.jpg);

height: 100px;

width: 50px;

padding: 10px 50px;

overflow: scroll;

}

#inner {

height: 200px;

width: 50px;

background-color: #d0ffe3;

}

因为限制了父元素的高度,所以不能全部显示子元素,设置了overflow之后,可以通过滚动条的形式滑动查看子元素。效果如图1,如果没有限制父元素的高度,那么效果将如图2显示。

15387876114c243d556ac326e94593db.png(图1)

123b47918da2644f27afd50c080a408d.png(图2)

scrollHeight就是图2的高度,没有高度限制时,能够完全显示子元素时的高度(clientHeight)。

所以这里scrollHeight为220,计算:200+10+10=220

scrollTop,可写

是这些元素中唯一一个可写可读的。

下面的图是用微信截图随便画的:D(不小心混入了一个光标。。

50a495f8cd909ac205402e55883d45bb.png

3bf86564254eb61ba53c9716fa264fed.png

88bd9800f4c2a160eb5685df7f13bd13.png

所以当滚动条在最顶端的时候,scrollTop=0,当滚动条在最低端的时候,scrollTop=115

这个115怎么来的(滚动条高度是15,我量的),见下图。(实为我主观臆测,不保证准确性。。。_(:з」∠)_

8bc103fcd2a773931e9b8317b53bd05c.png

scrollTop是一个整数。

如果一个元素不能被滚动,它的scrollTop将被设置为0。

设置scrollTop的值小于0,scrollTop被设为0。

如果设置了超出这个容器可滚动的值,scrollTop会被设为最大值。

判定元素是否滚动到底:

element.scrollHeight - element.scrollTop === element.clientHeight

返回顶部

element.scrollTop = 0

一个简单的返回顶部的时间,一个需要注意的地方是,动画是由快到慢的。

返回顶部

#outer { height: 100px; width: 100px; padding: 10px 50px; border: 1px solid; overflow: auto; }

返回顶部

function toTop(ele) {

// ele.scrollTop = 0;

let dy = ele.scrollTop / 4; // 每次更新scrollTop改变的大小

if (ele.scrollTop > 0) {

ele.scrollTop -= Math.max(dy, 10);

setTimeout(() => {

toTop(ele, dy);

}, 30);

}

}

// 初始化

window.onload = () => {

for (let i = 0; i < 233; i++) inner.innerText += `第${i}行\n`;

}

看完这篇关于浅谈JavaScript中scrollTop、scrollHeight、offsetTop、offsetHeight的文章,如果觉得文章内容写得不错的话,可以把它分享出去给更多人看到。


http://chatgpt.dhexx.cn/article/t254dc8d.shtml

相关文章

html5 scrollheight,scrollHeight和scrollWidth,获取网页内容高度和宽度不正确

问题如下图所示&#xff0c;高度明显不正确&#xff0c;请问问题出在哪&#xff0c;希望能给出详细解释。另外&#xff0c;希望能再具体解释下document.documentElement.clientHeight、window.innerHeight、document.documentElement.scrollHeight及document.body.clientHeight…

html5 scrollheight,JavaScript之scrollTop、scrollHeight、offsetTop、offsetHeight等属性学习笔记...

全文参考&#xff1a;https://github.com/iuap-design/blog/issues/38 、MDN clientHeight&#xff0c;只读 clientHeight可以用公式 CSS height CSS padding - 水平滚动条的高度 (如果存在) 来计算。 如图&#xff0c;这样一个div&#xff0c;它的clientHeight为95&#xff0…

html 的scor属性,scrollheight属性

scrollHeight 属性是属于什么范畴&#xff1f; CSS布局HTML小编今天和大家分享问大神&#xff0c;Height属性到底指的是什么 html设置 overflow-x: scroll;属性后怎么让指定位如果页面不够长(至少窗口长度两倍)&#xff0c;那肯定滚动不到一半的位置。否则任何浏览器都不会产生…

scrollHeight实测

scrollHeight实测 scrollHeight就是不考虑滚动条&#xff0c;将内容全部在页面上展开时的高度&#xff0c;注重要加上 padding&#xff0c;不包括border – 小菜菜 即 scrollHeight 实际内容尺寸 padding 我们来看看在box-sizing分别是content-box 和 border-box 时&#x…

JS中scrollHeight,clientHeight、scrollTop、offsetTop等相关属性介绍

一、先介绍clientHeight与scrollHeight的区别 clientHeight&#xff1a; 在页面上返回内容的可视高度&#xff08;不包括边框&#xff0c;边距或滚动条&#xff09; scrollHeight&#xff1a; 返回整个元素的高度&#xff08;包括带滚动条的隐蔽的地方&#xff09; 相关概念的…

QQ好友辅助验证不要信

为什么说不要信&#xff1f; 首先&#xff0c;从我自己亲身经历说起&#xff1a; 我同学突然叫我帮忙弄辅助验证&#xff0c;我就好心帮忙弄嘛。 后面我也听话的照着弄&#xff0c;结果到后面。 说完语音&#xff0c;我走到教室。我就发现不对劲&#xff0c;因为我问同学…

qq跳转加好友链接

现在有谁可以做到 跳转qq加好友的链接&#xff0c;加了对方能收到验证的消息。 测试了好多链接都不行&#xff0c;对方都收不到加好友的消息 用推荐QQQ联系人分享到微信 获取链接 在换别的qq跳转加好友也收不到任何消息 请问有哪位大神可以&#xff0c;帮忙解决这个问题 小…

网页QQ 不用加好友直接聊天

1、打开腾讯推广网站&#xff1a; &#xfeff;&#xfeff; http://shang.qq.com/ 2、登录需要推广的QQ 3、选择组件样式和提示语&#xff1a; 4、复制生成的代码&#xff0c;并粘贴到网页上即可&#xff1a;

(第一期)-自动化实现全自动加好友(以QQ可能想认识的人为例)

大家好&#xff0c;我是公众号&#xff1a;狗哥文化 最近有不少网友说,之前的QQ可能想认识的人引流程序用不了,不支持最新版本的qq,问我有没有时间更新一下,刚好昨天夜晚有点时间就顺手更新了一下,最后把整个开发过程给大家一起分享一下吧 再编写这款程序之前我们先来展示一下…

QQ小程序加QQ群和加好友

QQ小程序加QQ群和加好友 使用uni-app框架开发之QQ小程序已经有好几天了。总的来说体验还算满意&#xff01;之前一直做微信小程序开发现在开发QQ小程序还算是熟门熟路&#xff0c;今天就聊聊QQ小程序如何打开群和加好友&#xff0c;QQ小程序的开发能力还是比较给力的。如果是微…

qq自动添加好友

阉割版的qq自动添加好友 ##使用方法 打开qq添加好友界面 打开这个界面局可以了&#xff0c;不用去点下一步&#xff0c;这个操作交给代码来完成。接着就去添加其他的qq好友&#xff0c;记住&#xff0c;都不需要你点下一步。 然后就是把下面的代码复制到记事本里并保存&#x…

2023 QQ强制聊天加好友临时会话接口跳转单页HTML源码

功能&#xff1a; 跳转QQ聊天界面&#xff1a;支持已开启临时会话的QQ用户进行聊天。 跳转加好友界面&#xff1a;解决了QQ设置不允许被搜索后无法加好友的问题。 WPA临时会话&#xff1a;可通过网页直接跳转至聊天界面&#xff0c;与第一个按钮实现相似的功能。 接口全是官…

不加好友,QQ强制聊天三法

可用以下三种方法强制聊天 第一种&#xff1a;生成网页法首先打开“[url]http://is.qq.com/cgi-bin/webpresence/wpa_code?uin123456789[/url]”&#xff0c;把上面的123456789换成对方的QQ号。然后选择想要的会话图片和提示。在“点击生成代码”中我们选择生成网页代码&#…

QQ自动强制加好友代码

是的&#xff0c;你也许见过强行聊天的代码&#xff1a; tencent://Message/?Uin574201314&websiteNamewww.oicqzone.com&Menuyes但是你应该不知道&#xff0c;还有强行加好友的代码&#xff1a; tencent://AddContact/fromId45&fromSubId1&subcmdall&u…

设置页面包含子页面iframe用法

iframe用法 iframe作用是文档中的文档&#xff0c;就是页面去包含另一个文件&#xff0c;一般用来包含另一个页面。 Html5不支持frameset标签&#xff0c;但还是支持iframe标签的&#xff08;部分属性不支持了但也能用&#xff09;。用法&#xff1a; 为了方便页面布局一般配…

PHP实现iframe跨站替换文字/替换iframe网站文字的方法

简介 可将某个页面 用框架标签放到自己页面中&#xff0c;但其中有些链接&#xff0c;或者文字不想要&#xff0c;即可替换掉他们。 实例代码 <?php $site$_SERVER[QUERY_STRING]; $ch curl_init();curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLO…

iframe是什么?iframe用法详解。

经常和网站打交道或者经常建站的朋友对iframe肯定不陌生&#xff0c;网站有了iframe会变得更加美观、大气。对于初涉互联网的新手来说&#xff0c;iframe并不熟悉&#xff0c;那么iframe到底是什么&#xff1f;iframe用法有哪些呢&#xff1f; iframe是什么 iframe就是我们常用…

iframe属性与用法

iframe标签 小明说&#xff0c;iframe是能耗最高的一个元素&#xff0c;尽量减少使用。 小蓝说&#xff0c;iframe的安全性太差&#xff0c;尽量减少使用。 虽然他们说的是真的&#xff0c;但是iframe的强大功能是不容忽视的&#xff0c;而且现在不乏公司正在使用它。 标签规…

iframe的简单使用

看人家写的真的是摸不着头脑。自己写、还是清楚 局部数据的刷新&#xff1a;可以使用ajax。这里只是简单的演示 只作&#xff1a;例子使用、简单演示页面跳转 a标签中target属性和iframe中的name对应。相当于将该链接加载到当前的iframe界面 我这里使用maven项目演示 index.…