首页 > 解决方案 > 以角度计算/获取隐藏的div宽度

问题描述

在 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 的实际宽度?

标签: javascriptangular

解决方案


一个元素必须是可见的,并且不必display:none能够计算它的大小。我见过的解决这个问题的两种方法是:

1)将组件远离屏幕并计算尺寸。2)关闭display:none,计算大小,然后display:none重新打开。

只要你在同一个函数中执行#2,它就永远不会显示,因为浏览器的重绘功能直到你的函数完成后才会发生。并且由于display:none在您的功能结束时重新打开,该元素将永远不会显示。


推荐阅读