javascript - addEventListener('resize' 不适用于具有相对大小的 div
问题描述
我正在尝试为具有相对大小的 div 设置调整大小侦听器。div 上有一个height: 100%
样式,我希望当 div 的像素高度随其父容器发生变化时触发该事件。这是我的基本代码:
索引.html
<html>
<body>
<div class="foo"></foo>
</body>
</html>
main.css
.foo {
background-color: blue;
height: 100%;
width: 100%;
}
html, body {
height: 100%;
width: 100%;
}
main.js
document.querySelector(".foo").addEventListener("resize", () => {
console.log("foo resize");
});
window.addEventListener("resize", () => {
console.log("window resize");
});
当我调整窗口大小时,我会在控制台中得到预期的“窗口调整大小”文本,但永远不会打印“foo resize”。我还需要做些什么来让 foo resize 处理程序触发吗?
解决方案
该resize
事件仅在window
对象上触发。正在ResizeObserver
制作中,允许观察任意元素的大小调整,但浏览器对它的支持仍然非常稀缺。然而,有一些 polyfills 可以模仿它的行为,比如NPM 上的 resize-observer-polyfill。
推荐阅读
- python - 如何为绘制的数据框设置时间过滤器 - Matplotlib
- javascript - 如何在 ApolloServer 中获取 req.user
- flutter - 如何在不调用 setState 方法的情况下禁用按钮?
- database - MongoDb - 用于分片目的的重复索引字段?
- node.js - 将我的 api 密钥导出为模块或将其放入 .env 文件有什么区别
- python - 如何同步两个三重奏协程?
- content-management-system - 从 Next.js 中的 CMS 访问预览 api
- javascript - 从 API 调用中放入数据后,下拉菜单不起作用
- python - 合并两个文本列表时的问题
- python - 如何使用python通过for循环将许多.npz文件转换为.mat文件