javascript - 以角度计算/获取隐藏的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 的实际宽度?
解决方案
一个元素必须是可见的,并且不必display:none
能够计算它的大小。我见过的解决这个问题的两种方法是:
1)将组件远离屏幕并计算尺寸。2)关闭display:none
,计算大小,然后display:none
重新打开。
只要你在同一个函数中执行#2,它就永远不会显示,因为浏览器的重绘功能直到你的函数完成后才会发生。并且由于display:none
在您的功能结束时重新打开,该元素将永远不会显示。
推荐阅读
- c++ - 模板专业化仅在类范围内
- swiftui - SwiftUI 变暗修饰符
- android - 使 EditText 提供搜索结果
- javascript - 当它总是正确的时候为什么要使用while?
- rest - 我们如何创建自己的新闻 JSON API,就像 newsapi.org 网站上提供的那样?
- sorting - 一系列列上的 awk 'uniq'
- jsf - 从控制器 bean 填充 ace:comboBox 值
- termux - Termux 存储库不再有发布文件
- image - 传单 SVG 覆盖随机模糊
- angularjs - AngularJS + Angular 8 不能一起工作 [混合应用程序]