mipengine/mip2

MIP.viewer.page.scrollToHash 在锚点节点存在 position: relative 祖先元素时会导致锚点不准确

clark-t opened this issue · 1 comments

BUG 描述
MIP.viewer.page.scrollToHash 在锚点节点存在 position: relative 祖先元素时会导致锚点不准确,错误原因基本定位是 MIP.viewer.page.scrollToHash 方法中获取锚点节点的 offsetTop 方式不对,应该沿着 offsetParent 逐渐将 offsetTop 累积起来获得。

复现步骤

  1. 准备简单的 MIP HTML 页面包含如下片段,其中 bias 节点需要存在一定高度是的 position-relative 本身存在偏移
<div class="bias"></div>
<div class="position-relative">
  <div id="target"></div>
</div>
  1. 在控制台输入 MIP.viewer.page.scrollToHash('#target')
  2. 发现滚的不对

期望结果
可以仿造 Jquery offset().top 的计算方法实现

截图
如果合适,添加问题相关的截图

环境及版本信息:

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • 浏览器 Version [e.g. 64]
  • mip-cli 版本

其他信息
其他补充信息

done