簡體   English   中英

我需要在加載頁面和調整頁面大小時根據窗口的大小設置div的高度

[英]I need to set the height of a div according to the size of the window when the page is loaded and when the page is resized

我需要一個函數,該函數可以在加載頁面和調整頁面大小時根據窗口的大小設置div的高度。

相反,我有一個僅在調整窗口大小時才增加div長度的函數。

我本人並不擅長javascript,這是我在完成網頁之前需要做的最后一件事,因此,我們將不勝感激!

這是頁面,相關的div是左側的淺灰色信息框(包含文本和按鈕): http : //goodshitdesign.no/

這是我目前擁有的功能的代碼:

<script>
$(document).ready(function() {
    $(window).on("resize", function() {

        var bodyheight = $(document).height();

        $(".infobox").height(bodyheight);
    });
});
</script>

無需使用Javascript設置相對於視口的尺寸。

使用視口百分比高度

視口高度的1/100。

.infobox {
    height: 100vh;
}

如果您仍然想使用JS( 我不知道為什么在使用CSS時會更好 ),

  1. resize事件綁定不需要ready
  2. 要獲取窗口高度,請使用$(window).height()
  3. 使用trigger強制在頁面加載時執行事件處理程序

碼:

$(window).on("resize", function () {
    $(".infobox").height($(window).height());
    //                   ^^^^^^^^^
}).trigger('resize');
// ^^^^^^^^^^^^^^^^^

您是否考慮過使用vhvw CSS單元代替JavaScript?

.infobox { width: 100vh; height: 100vh; }
<script>
$(document).ready(function() {
    $(".infobox").height($(window).height());
    $(window).on("resize", function() {
        $(".infobox").height($(window).height());
    });
});
</script>

加載頁面時,“調整大小”不運行。 因此,在准備好頁面時,您只需創建一個事件處理程序以調整將來的大小。

您的腳本按原樣工作。 為了調整div onload的大小,只需調用不帶任何參數的.resize方法即可。

<script>
$(document).ready(function() {
    $(window).on("resize", function() {
        var bodyheight = $(document).height();
        $(".infobox").height(bodyheight);
    });
    $(window).resize(); // THIS EMULATES THE RESIZE EVENT ONDOCUMENTREADY
});
</script>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM