js原生如何取某可滚动元素中的子元素坐标值?

作者站长头像
站长
· 阅读数 12

例如如下代码

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Popup Example</title>
<style>
html {
  font-size: 5.33333vw;
}

section.main {
  position: relative;
}
section.main header {
  position: fixed;
  top: 0;
  right: 0;
  left: 0;
  z-index: 999;
  height: 2.25rem;
  background-color: #e1e1e1;
}
section.main section.pop {
  position: absolute;
  width: 100%;
  background-color: #f3f3f3;
  left: 0;
  right: 0;
  z-index: 88;
  overflow: auto;
}
section.main section.pop.one {
  height: 25rem;
}
section.content {
  position: relative;
  z-index: 66;
  background-color: #fff;
  top: 2.25rem;
  left: 0;
  right: 0;
}
</style>
</head>
<body>
<section class="main">
  <header>固定头部</header>
  <section class="pop one" id="pop">
    <ul>
      <li pdata=1 id="pop1">pop1</li><li>1</li><li>1</li><li>1</li><li>1</li>
      <li pdata=2 id="pop2">pop2</li><li>1</li><li>1</li><li>1</li><li>1</li>
      <li pdata=3 id="pop3">pop3</li><li>1</li><li>1</li><li>1</li><li>1</li>
      <li pdata=4 id="pop4">pop4</li><li>1</li><li>1</li><li>1</li><li>1</li>
      <li pdata=5 id="pop5">pop5</li><li>1</li><li>1</li><li>1</li><li>1</li>
      <li pdata=6 id="pop6">pop6</li><li>1</li><li>1</li><li>1</li><li>1</li>
      <li pdata=7 id="pop7">pop7</li><li>1</li><li>1</li><li>1</li><li>1</li>
      <li pdata=8 id="pop8">pop8</li><li>1</li><li>1</li><li>1</li><li>1</li>
      <li pdata=9 id="pop9">pop9</li><li>1</li><li>1</li><li>1</li><li>1</li>
      <li pdata=10 id="pop10">pop10</li><li>1</li><li>1</li><li>1</li><li>1</li>
    </ul>
  </section>
</section> 
<section class="content">
  <ul>
    <li>1x</li><li>1</li><li>1</li><li>1</li><li>1</li>
    <li>2x</li><li>1</li><li>1</li><li>1</li><li>1</li>
    <li>3x</li><li>1</li><li>1</li><li>1</li><li>1</li>
    <li>4x</li><li>1</li><li>1</li><li>1</li><li>1</li>
    <li>5x</li><li>1</li><li>1</li><li>1</li><li>1</li>
    <li>1x</li><li>1</li><li>1</li><li>1</li><li>1</li>
    <li>2x</li><li>1</li><li>1</li><li>1</li><li>1</li>
    <li>3x</li><li>1</li><li>1</li><li>1</li><li>1</li>
    <li>4x</li><li>1</li><li>1</li><li>1</li><li>1</li>
    <li>5x</li><li>1</li><li>1</li><li>1</li><li>1</li>
  </ul>
</section>
</body>
</html>

js原生如何获取<section class="pop one" id="pop">中的li有pdata属性的对象的坐标值,比如每个对象的顶部坐标值,另外监测<section class="pop one" id="pop">滚动事件

回复
1个回答
avatar
test
2024-08-11

参考这个 getBoundingClientRect api,来获取基于试图的坐标位置。

https://developer.mozilla.org/zh-CN/docs/Web/API/Element/getB...

回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容