如何使一個div能夠鋪滿整個頁面? && 模態框的制作 && outerHTML


說明: 使用 ele.outerHTML = '' 這樣的方法可以很容易的清除一個元素。 當然也可以使用parent.removeChild() ,但是相較而言,還是使用 outerHTML = '' 更容易、便捷一些。

 

如何使一個div能夠鋪滿整個頁面?

  

第一步:提出問題

  最近在做項目,希望實現這樣一個效果: 在首頁的右下角fix一個搜索圖片,點擊這個搜索圖片,就會彈出一個類似模態框的div,這個div會占領整個頁面的位置。

 

第二步:使用demo測試

  下面我們就利用一個簡單的demo測試。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>fullPage</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        html, body, .fullpage {
            width: 100%;
            height: 100%;
        }
        .fullpage {
            background-color: #abc;
            color: white;
            font-size: 35px;
            text-align: center;
        }
    </style>
</head>
<body>
    <div class="fullpage">
        這是一段文字
    </div>
</body>
</html>

  效果如下所示:

 

  這是最簡單的一種方式。

  如果我們希望當點擊某一個按鈕時, 這個模態框出現, 將其他內容全部覆蓋呢?  並且其下面的內容不可滾動....應該怎么做呢?

  首先看下面的例子:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>fullPage</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        html, body, .fullpage {
            width: 100%;
            height: 100%;
        }
        .fullpage {
            display: none;
            position: fixed;
            top: 0;
            bottom: 0;
            left: 0;
            right: 0;
            background-color: #abc;
            color: white;
            font-size: 35px;
            text-align: center;
        }
        button {
            position: fixed;
            bottom: 50px;
            right: 50px;
            background-color: red;
        }
    </style>
</head>
<body>
    <div class="content">
        快樂<br/>快樂<br/>快樂<br/>快樂<br/>快樂<br/>快樂<br/>快樂<br/>快樂<br/>快樂<br/>快樂<br/>快樂<br/>快樂<br/>快樂<br/>快樂<br/>快樂<br/>快樂<br/>快樂<br/>快樂<br/>快樂<br/>快樂<br/>快樂<br/>快樂<br/>快樂<br/>快樂<br/>快樂<br/>快樂<br/>快樂<br/>快樂<br/>快樂<br/>快樂<br/>快樂<br/>快樂<br/>快樂<br/>快樂<br/>快樂<br/>快樂<br/>快樂<br/>快樂<br/>快樂<br/>快樂<br/>快樂<br/>快樂<br/>快樂<br/>快樂<br/>快樂<br/>快樂<br/>快樂<br/>
    </div>
    <button>click to fullpage</button>
    <div class="fullpage">
        文字<br/>文字<br/>文字<br/>文字<br/>文字<br/>文字<br/>文字<br/>文字<br/>文字<br/>文字<br/>文字<br/>文字<br/>文字<br/>文字<br/>文字<br/>文字<br/>
    </div>
    <script>
        document.querySelector("button").onclick = function() {
            document.querySelector(".fullpage").style.display = "block";
        }
    </script>
</body>
</html>

  這里我利用將這個div的position: fixed; top: 0; bottom: 0; left: 0; right: 0;可以將這個div占滿整個屏幕。 

 

第三步: 運用到項目中

   更好的做法是下面這樣的:

      var model = document.createElement("div");
      model.style.cssText = "position: absolute; width: 100%; height: 100%; left: 0; top: 0; background: rgba(0, 0, 0, 0.7);z-index: 9998;";
      document.body.appendChild(model);

  即點擊某個按鈕之后直接創建一個div,然后利用cssText來填充。

  注意: 因為這里直接添加到了 body 上,所以使用absolute和使用fixed得到的結果是類似的。

 

  如下:

 state.ifShowCart = !state.ifShowCart;
      if (state.ifShowCart == true) {
        var model = document.createElement("div");
        model.id = "Model";
        model.style.cssText = "position: fixed; width: 100%; height: 100%; left: 0; top: 0; background: rgba(0, 0, 0, 0.7);z-index: 9998;";
        document.body.appendChild(model);
      } else {
        document.getElementById("Model").outerHTML = "";
      }

 

 

  即清空outerHTML即可將該元素去除。

 

 

 

 

 

 

 

 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM