html - 角度获取自定义组件的高度
问题描述
我正在尝试这样的代码:
@ViewChild('footer_endlessblow')
footerView: ElementRef;
ngAfterViewInit(): void {
console.log(this.footerView.nativeElement.offsetHeight);
{
和我的component.html分开
<app-footer #footer_endlessblow></app-footer>
我的页脚组件看起来像这样。
页脚.css
@media screen and (min-height: 600px) {
#footer-div {
border: 3px solid lightseagreen;
background-color: lightblue;
width: 95%;
left: 2.5%;
position: fixed;
text-align: center;
bottom: 10px;
box-sizing: border-box;
vertical-align: middle;
transition: 0.5s ease;
}
p {
margin: 0;
transition: 0.5s ease;
}
.footer-contact-me {
font-size: 30px;
transition: 0.5s ease;
}
.footer-find-me {
font-size: 30px;
margin: 20px 0 15px 0;
transition: 0.5s ease;
}
.footer-div-links {
display: inline-block;;
margin: -10px 30px 5px 50px;
font-size: 22px;
transition: 0.5s ease;
}
#footer-email {
font-size: 22px;
margin: 20px 0 10px 0;
transition: 0.5s ease;
}
img {
vertical-align: middle;
transition: 0.5s ease;
}
}
@media screen and (max-height: 600px) {
#footer-div {
border: 1px solid lightseagreen;
background-color: lightblue;
width: 95%;
left: 2.5%;
position: absolute;
text-align: center;
bottom: 10px;
box-sizing: border-box;
vertical-align: middle;
transition: 0.5s ease;
}
p {
margin: 0;
transition: 0.5s ease;
}
.footer-contact-me {
display: inline-block;
font-size: 22px;
vertical-align: middle;
transition: 0.5s ease;
}
.footer-find-me {
display: inline-block;
margin:0 10px 0 20px;
font-size: 22px;
vertical-align: middle;
transition: 0.5s ease;
}
#footer-email {
font-size: 16px;
margin: 0 0 0 10px;
transition: 0.5s ease;
}
.footer-div-links {
display: inline-block;
margin-bottom: 3px;
transition: 0.5s ease;
}
img {
width: 30px;
height: 30px;
vertical-align: middle;
transition: 0.5s ease;
}
}
页脚.html
<div id="footer-div">
<p class="footer-contact-me">Contact me:</p><a id="footer-email" href="mailto:jawegielewski@gmail.com">jawegielewski@gmail.com</a>
<p class="footer-find-me">Or find me on:</p>
<div class="footer-div-links">
<a href="https://www.facebook.com/jakub.wegielewski">
<img alt="facebook" src="assets/images/facebook.png" title="facebook" width="40" height="40">
</a>
</div>
<div class="footer-div-links">
<a href="https://github.com/jawegielewski">
<img alt="github" src="assets/images/github.png" title="github" width="40" height="40">
</a>
</div>
<div class="footer-div-links">
<a href="https://pl.linkedin.com/in/jakub-wegielewski">
<img alt="linkedin" src="assets/images/linkedin.png" title="linkedin" width="40" height="40">
</a>
</div>
</div>
但后来我明白了ERROR TypeError: Cannot read property 'offsetHeight' of undefined
。我更新了我的代码以提供更多信息。我更新了我的代码以提供更多信息。我更新了我的代码以提供更多信息。我更新了我的代码以提供更多信息。我更新了我的代码以提供更多信息。我更新了我的代码以提供更多信息。
解决方案
您需要在 viewChild 中再设置一个属性,就像这样
@ViewChild("footer_endlessblow", { read: ElementRef }) footerView: ElementRef;
ViewChild 文档链接
推荐阅读
- python - 将阶段虚拟变量转换为使用 pandas 显示跳过阶段的 df
- reactjs - yarn ios throws missing metro-config package error 运行 yarn ios 时显示以下错误
- spring-boot - Hazelcast 没有在 Spring Boot 中正常关闭?
- azure - 在我的代码中从 Azure API 管理识别特定用户或订阅的最佳做法是什么?
- pandas - 查找和替换子字符串前的数值
- javascript - 有一些设计。数据表功能工作正常,但在重新加载表头缩小后,但是当我点击表时它很好
- python - 通过pyinstaller创建的exe扩展文件执行pytest
- java - 广告:无法加载广告:旧包名称出现 3 个错误
- gitlab - 尝试使用工件在作业之间传递变量时出错
- amazon-web-services - 使用 express-json-compress 节点模块在 lambda 函数中没有得到响应