在Angular中,我有一个隐藏的div
,它应该在事件中可见
事件触发相应的方法。到目前为止一切顺利。
但我需要在显示之前计算div
的位置。我使用以下代码来获取div
的边界并计算实际位置但div
的宽度为零,因为它是隐藏的。
EventTriggerMethod(myDiv){
console.log(myDiv.getBoundingClientRect().width);
//OR
console.log(window.getComputedStyle(myDiv).width);
//Both return 0 when div is hidden.
}
如果div不可见,我如何获得div的实际宽度?
答案 0 :(得分:1)
元素必须是可见的,并且没有display:none
才能计算其大小。我看到的两种解决方法是:
1)将组件放在屏幕外并计算尺寸。
2)关闭display:none
,计算尺寸,然后重新开启display:none
。
只要你在同一个函数中执行#2它就永远不会显示,因为浏览器的重绘功能在你完成功能之后才会发生。由于display:none
在函数结束时被重新打开,因此该元素永远不会显示。