![](/img/trans.png)
[英]How do I resize an IMG element so that it is proportionately in the same place on the window when the window size changes?
[英]How do I watch the element size on load AND resize of the window with vanilla JS?
我想自动调整<div id="main">something</div>
的高度,以便即使它为空,它的全屏高度的最小高度减去标题的高度。 它正在加载,但没有调整大小。 如果我调整大小,则必须刷新屏幕才能重新计算。 我希望这款手表能够在屏幕上显示,以便即时调整尺寸。 如何使用当前代码或其他方法执行此操作?
let main = document.getElementById('main');
let fullscreen = window.innerHeight;
let headerHeight = document.getElementById('navHeader').offsetHeight;
let newsletterHeight = document.getElementById('newsletter').offsetHeight;
let footerHeight = document.getElementById('footer').offsetHeight;
let addHeight = headerHeight + newsletterHeight + footerHeight;
let computedHeight = fullscreen - addHeight + 7;
window.addEventListener('load', function() {
document.getElementById('main').style.cssText = `min-height:${computedHeight}px;`;
});
window.addEventListener('resize', function() {
document.getElementById('main').style.cssText = `min-height:${computedHeight}px;`;
});
在我的代码中,我抓取了窗口innerHeight,页眉高度,在页眉下方刷新的新闻稿元素高度和页脚高度。 全部加在一起。 然后将其余部分作为我的主要房地产。 这是根据大小和计算来调整大小的元素。
这是您需要的空白页面的HTML,(忽略PHP包含)
<html>
<head>
<title>Fitness & Lifestyle | Contact</title>
<?php include ('./partials/header.php') ?>
</head>
<body>
<?php include ('./partials/nav.php') ?>
<section class="mt-7" id="newsletter">
<?php include ('./partials/newsletter.php') ?>
</section>
<section id="main"></section>
<?php include ('./partials/footer.php') ?>
</body>
</html>
提前致谢
那是因为您在页面加载中只computedHeight
一次了一次computedHeight
计算的computedHeight
。 每次触发调整大小处理程序时, computedHeight
都是相同的值。
您需要在每次调整大小时重新计算。 像这样:
function resizeMain() {
let main = document.getElementById('main');
let fullscreen = window.innerHeight;
let headerHeight = document.getElementById('navHeader').offsetHeight;
let newsletterHeight = document.getElementById('newsletter').offsetHeight;
let footerHeight = document.getElementById('footer').offsetHeight;
let addHeight = headerHeight + newsletterHeight + footerHeight;
let computedHeight = fullscreen - addHeight + 7;
document.getElementById('main').style.cssText = `min-height:${computedHeight}px;`;
}
calculateHeight();
window.addEventListener('load', resizeMain);
虽然,我不确定这是一个明智的方法,因为对于每次调整大小,您都会进行大量的计算。 您可能要使用某种debounce
功能。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.