Open jinzhubaofu opened 9 years ago
之前在业务里面碰到过这个问题,采取的是外部再调用一下locate,重新定位 除了target变化会造成这个问题之外,tip的content变化也会引起这个问题,譬如方位为tl时
我觉得要是在组件内部来实现这个功能的话,成本颇大
在 2015年5月21日 下午12:18,leon notifications@github.com写道:
如何复现:
- 假设,target在正常文档流,相对于body的offsetTop是500px,此时Popup已经显示出来
- 接下来,把target之前的内容清空,这时target的offsetTop就会变成0
- 这时候Popup还停留在原地
这个问题的原因在于Popup的main元素直接挂载在body上。目前使用了Popup的组件都有这个问题。
我想到了两个办法
- 把popup挂载到组件的main元素内部。这个方案伤筋动骨,动作太大。
- 给body模拟一个offsetHeightChange的事件,性能上可能有问题
大家看看有什么好办法 @wuhy https://github.com/wuhy @michaelliu90316 https://github.com/michaelliu90316
— Reply to this email directly or view it on GitHub https://github.com/ecomfe/moye/issues/63.
也许我们可以提供一个静态的方法,可以让用户手动地重新定位Popup
的位置。比如:
var Popup = require('moye/Popup');
Popup.relocation();
这样应该是简单地很多的。
如何复现:
这个问题的原因在于Popup的main元素直接挂载在body上。目前使用了Popup的组件都有这个问题。
我想到了两个办法
offsetHeightChange
的事件,性能上可能有问题大家看看有什么好办法 @wuhy @michaelliu90316