美文网首页
2024-02-27 超高高度替换内容后复位滚动位置

2024-02-27 超高高度替换内容后复位滚动位置

作者: 网恋被骗二块二 | 来源:发表于2024-02-27 11:54 被阅读0次

昨天出现一个问题:
页面有个两个区块,第一个区块是文字+表格,第二个区块是表格,之间有其他文字说明
现在第一个区块的文字内容很多,高度超长,正常手机屏幕看不完全,需要往下滑动才能看到表格
表格第一列可以点击,点击后替换第一个区块的内容,高度远小于 文字+表格
导致出现 用户点击表格后,因为高度扣去,导致当前视窗视角停留在第二个区块表格处,以为第一个表格跳转的内容是第二个表格

解决:
获取原本第一区块的offsetTop,重新设置scrollTop

遇到的问题:

<div overflow-x> // 可滚动的container
  <div>标头或者其他内容</div>
  <div>
    <div position: rel>
      <div>
        <div position: rel>
          <div>
            第一区块
          </div>
        </div>
      </div>
     </div>
  </div>
  <div>
    // 第二区块
  </div>
</div>

大概展示一下结构,offsetTop的取值依据是最近的position,所以这块直接拿的话,得到的值就是0,显然不符合预期
于是换了一种思路,往上遍历,去拿所有祖先元素的offsetTop并累加,结果是因为层层结构包裹,出现了(通过console查看offsetTop和取值对象):

  1. 重复取值
  2. 并没有拿到真正的offsetTop
  3. 有的offsetTop范围重复了

最后重新查看Element,无论是哪块内容,最终都由一个<div />包裹,而这些容器都在一个可滚动container里,所以最终去取container子级的offsetTop就行

因为:最终offsetTop的参考点将是最近的滚动元素(比如一个具有 overflow: scroll 的元素)或者 body/html

相关文章

  • uni-app移动端如何使用scroll-view处理左侧菜单与

    通过点击左侧菜单选项卡,右侧内容区域滚动到对应的高度位置,同样,右侧内容区域滚动一定的距离后,左侧选项卡需要判断右...

  • 滑块and鼠标滚轮

    自定义滚动条的万能比例:**滚动条的高度 / 屏幕的高度 = 屏幕的高度 / 内容的高度 = 滚动条的移动距离 /...

  • JS监听是否滚动到底部

    练习项目时需要实现滚动到指定位置然后加载更多, 主要实现方法是用滚动条距顶部高度+可视区高度与滚动条总高度进行比较...

  • Popover 弹出框 弹出定位问题

    发现弹出位置会根据后面滚动条滚动的高度定位 没有滚动条时 有滚动条时,点击第二个,位置还是第一个的位置 解决 定位...

  • 常见的界面布局和CSS问题(持续更新)

    页面在重新渲染后滚动或跳动到初始位置 解决办法:将重新渲染部分设置为滚动容器ListView,不限制高度。将Lis...

  • 微信小程序sroll-view组件横向滚动

    scroll-view设置高度后无法滚动,溢出内容被隐藏,就像overflow: hidden 需要scroll-...

  • 网页回到顶部实现方法

    js获取页面元素距离浏览器工作区顶端的距离 网页被卷起来的高度/宽度(即浏览器滚动条滚动后隐藏的页面内容高度) (...

  • JS实现滚动条触底加载更多

    原理 1.通过监听滚动区域DOM的scroll事件, 计算出触底 // 滚动可视区域高度 + 当前滚动位置 ===...

  • 小程序 组件的一些经验

    一、滚动条位置(可视内容)跟随改变+动画 scroll-view 1.对于宽度/高度固定的,可以选用这种 2.对应...

  • js中获取窗口高度的方法

    js中获取窗口高度的方法 取窗口滚动条滚动高度 取窗口可视范围的高度 取文档内容实际高度 在IE中:documen...

网友评论

      本文标题:2024-02-27 超高高度替换内容后复位滚动位置

      本文链接:https://www.haomeiwen.com/subject/jtbtzdtx.html