ecomfe/esui

Layer第一次展示定位不准

Closed this issue · 2 comments

在Chrome下可以复现,符合以下条件:

  1. 带Layer的控件(如Calendar)放在一个可滚动的容器(非window)内
  2. 容器有一定的滚动(offsetTop
  3. 打开控件的Layer

定位会偏移容器的scrollTop值,从代码上来看behavior/position中的getWithinInfo并没有拿到正确的offsetParent,而是获取了window的滚动值(为0)

看上去这个定位的逻辑无法解决容器有滚动,甚至容器是fixed定位同时window和容器都有滚动的场景

由于position函数在实现时没有很好的拆分,代码量大太过复杂,缺少一些注释我也不知道各个变量代表啥,无处下手进行修改,还请协助修复一下

@otakustay dev-3.2 分支已经修改
试一下。

有效