当前位置: 首页 > news >正文

scrol家族 offset家族 client家族学习

Scroll 系列属性

scrollTop & scrollLeft

  1. scrollTop: 返回元素的内容已向上滚动的部分的高度。
  2. scrollLeft: 返回元素的内容已向左滚动的部分的宽度。

scrollHeight & scrollWidth

  1. scrollHeight: 返回元素的实际高度,包括由于溢出而在屏幕上不可见的内容。
  2. scrollWidth: 返回元素的实际宽度,包括由于溢出而在屏幕上不可见的内容。
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Scroll Properties Example</title><style>#container {width: 200px;height: 200px;overflow: auto;border: 1px solid black;}.content {width: 300px;height: 300px;}</style>
</head>
<body><div id="container"><div class="content"></div></div><button onclick="logScrollProperties()">Log Scroll Properties</button><script>function logScrollProperties() {const container = document.getElementById('container');console.log(`scrollTop: ${container.scrollTop}`);console.log(`scrollLeft: ${container.scrollLeft}`);console.log(`scrollHeight: ${container.scrollHeight}`);console.log(`scrollWidth: ${container.scrollWidth}`);}// 示例:自动滚动到底部setTimeout(() => {const container = document.getElementById('container');container.scrollTop = container.scrollHeight;container.scrollLeft = container.scrollWidth;}, 2000);</script>
</body>
</html>

Offset 系列属性

offsetTop & offsetLeft

  1. offsetTop: 元素相对于最近的定位祖先元素(position != static)顶部的距离。如果没有这样的祖先,则相对于初始包含块(通常是视口)
  2. offsetLeft: 元素相对于最近的定位祖先元素左侧的距离。如果没有这样的祖先,则相对于初始包含块。

offsetParent

  1. offsetParent: 返回一个指向最近的设置了 position 属性(除了static之外)的祖先元素。如果没有这样的祖先,则返回 null 或者 <body> 元素。

offsetHeight & offsetWidth

  1. offsetHeight: 包括 content + padding + border 的总高度。
  2. offsetWidth: 包括 content + padding + border 的总宽度。
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Offset Properties Example</title><style>#outer {position: relative;top: 50px;left: 50px;width: 200px;height: 200px;background-color: lightblue;}#inner {position: absolute;top: 20px;left: 20px;width: 100px;height: 100px;background-color: yellow;}</style>
</head>
<body><div id="outer">Outer Div<div id="inner">Inner Div</div></div><button onclick="logOffsetProperties()">Log Offset Properties</button><script>function logOffsetProperties() {const outer = document.getElementById('outer');const inner = document.getElementById('inner');console.log(`Outer div's offsetTop: ${outer.offsetTop}, offsetLeft: ${outer.offsetLeft}`);console.log(`Inner div's offsetTop: ${inner.offsetTop}, offsetLeft: ${inner.offsetLeft}`);console.log(`Outer div's offsetHeight: ${outer.offsetHeight}, offsetWidth: ${outer.offsetWidth}`);console.log(`Inner div's offsetHeight: ${inner.offsetHeight}, offsetWidth: ${inner.offsetWidth}`);console.log(`Inner div's offsetParent: `, inner.offsetParent);}</script>
</body>
</html>

Client 系列属性

clientTop & clientLeft

  1. clientTop: 边框的厚度(上边框),不包括外边距、内填充或水平滚动条
  2. clientLeft: 左侧边框的厚度。

clientHeight & clientWidth

  1. clientHeight: 可见区域的高度,包括内填充不包括边框、外边距或水平滚动条
  2. clientWidth: 可见区域的宽度,包括内填充但不包括边框、外边距或垂直滚动条。
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Client Properties Example</title><style>#element {width: 200px;height: 200px;margin: 20px;padding: 10px;border: 5px solid red;overflow-y: scroll;}</style>
</head>
<body><div id="element">Some long text here... Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</div><button onclick="logClientProperties()">Log Client Properties</button><script>function logClientProperties() {const element = document.getElementById('element');console.log(`clientTop: ${element.clientTop}`); // Border thickness (top)console.log(`clientLeft: ${element.clientLeft}`); // Border thickness (left)console.log(`clientHeight: ${element.clientHeight}`); // Visible area including padding but excluding borders and scrollbarconsole.log(`clientWidth: ${element.clientWidth}`); // Same logic applies horizontally}</script>
</body>
</html>

总结

scrollscrollTop元素内容垂直滚动的像素数。
scrollLeft元素内容水平滚动的像素数。
scrollHeight元素内容的总高度,括在视口中不可见的部分。
scrollWidth元素内容的总宽度,包括在视口中不可见的部分。
offsetoffsetTop元素顶部相对于包含元素的顶部的距离。
offsetLeft元素左边缘相对于包含元素左边缘的距离。
offsetHeight元素的高度,包括边框和内边距
offsetWidth元素的宽度,包括边框和内边距。
clientclientTop元素的上边框的宽度。
clientLeft元素的左边框的宽度。
clientHeight元素的内部高度,不包括水平滚动条高度。
clientWidth元素的内部宽度,不包括垂直滚动条宽度。
http://www.lryc.cn/news/528002.html

相关文章:

  • css-background-color(transparent)
  • 如何将xps文件转换为txt文件?xps转为pdf,pdf转为txt,提取pdf表格并转为txt
  • 【Samba】Ubuntu20.04 Windows 共享文件夹
  • gradle和maven的区别以及怎么选择使用它们
  • 360大数据面试题及参考答案
  • Myeclipse最新版本 C1 2019.4.0
  • MySQL 9.2.0 的功能
  • 接口 V2 完善:分布式环境下的 WebSocket 实现与 Token 校验
  • 微前端架构在前端开发中的实践与挑战
  • 【自学嵌入式(6)天气时钟:软硬件准备、串口模块开发】
  • macbook安装go语言
  • 代码随想录算法训练营第三十八天-动态规划-完全背包-322. 零钱兑换
  • 小阿卡纳牌
  • DDD 和 TDD
  • Java学习教程,从入门到精通,JDBC插入记录语法及案例(104)
  • Linux文件基本操作
  • React 路由导航与传参详解
  • C#面试常考随笔6:ArrayList和 List的主要区别?
  • C#分页思路:双列表数据组合返回设计思路
  • 中科大:LLM检索偏好优化应对RAG知识冲突
  • 知识库管理系统提升企业知识价值与工作效率的实践路径分析
  • 中文输入法方案
  • 《AI芯片:如何让硬件与AI计算需求完美契合》
  • AlertDialog组件的功能与用法
  • 【Python百日进阶-Web开发-FastAPI】Day813 - FastAPI 响应模型
  • 洛谷U525376 信号干扰 (判断多个区间是否有重叠)
  • ESP32-S3模组上跑通esp32-camera(35)
  • Java进阶(二):Java设计模式
  • DeepSeek R1:中国AI黑马的崛起与挑战
  • 抗体人源化服务如何优化药物的分子结构【卡梅德生物】