javascript - ResizeObserver 在垂直或水平调整浏览器大小时保持数组结构
问题描述
我可能会忽略一些小细节,但我正在努力使用 ResizeObserver 获取多个 div 的高度值。
描述我的问题的 Gif:
我有一种情况(React env),当我水平调整浏览器窗口的大小时,我的child
div 返回数组中的高度,例如:
(3) [100, 120, 110]
(3) [100, 110, 100]
(3) [100, 100, 90]
... etc
但是当我垂直调整浏览器大小时,我只得到第一个项目,而另外两个最后一个子项目甚至没有在控制台中呈现。(这是我的问题)
(3) [100]
(3) [90]
(3) [80]
... etc
这告诉我的是,当我垂直调整大小时,最后两个子 div 的高度不会改变,但第一个项目会。
我怎样才能得到这样的东西(垂直调整大小时)。数组中的第一项更改但其他两个未更改的值保留在数组中。
(3) [100, 120, 110]
(3) [90, 110, 100]
(3) [80, 100, 90]
... etc
代码设置简化:
const ro = new ResizeObserver((entries) => {
const childHeightArray = [];
entries.forEach((entry) => {
return childHeightArray.push(entry.contentRect.height);
});
console.log(childHeightArray);
});
children.forEach((child) => ro.observe(child));
我最好将 getBoundingClientRect 用于这种东西吗?谢谢你的时间!
解决方案
推荐阅读
- unity3d - 相对于鼠标位置统一实例化一个立方体?
- python - Pandas Series.str.replace () 在我的情况下不起作用
- json - 在 SwiftUI 中显示 JSON 数据
- reactjs - 使用反应链接或重定向时出现问题
- python - 如何告诉 mypy 字典中特定项目的复杂类型?
- sql - 多字方法名称/类与单独的类
- java - 如何在不将其注册为 Windows 服务的情况下编写静默自启动、长时间运行、时间触发的 Java 桌面应用程序?
- java - AWS Elastic Beanstalk(单实例):如何为 Spring Boot 应用程序启用 HTTPS?
- swift - 使用所有 MongoDB Atlas Cluster Storage 的 Realm Sync 客户端历史记录
- wpf - 如何从工具提示 WPF 中获取投影?