實現不同分辨率、不同瀏覽器下高度自適應、iframe高度自適應


html:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script type="text/javascript" src="js/jQuery.js"></script>
        <script type="text/javascript" src="js/js.js"></script>
        <style type="text/css">
            /*
             * 設置高度自適應,讓在普通分辨率下和大屏分辨下,都能鋪滿屏。
             1.設置最外層html的 font-size: 12px;
            */
            html,body{font-family: "微軟雅黑";font-size: 12px;width: 99%;height: 100%;  min-width: 1340px;  background-color: #04101E;margin: 0 auto;}
            /*
             2.高度用rem單位。
               最外層html的 font-size: 12px;如果div的height是24px,那用24/12=2rem;相當於1rem=12px;
            */
            .div1,.div2,.div3{
                width: 100%;
                height: 18.33rem;
                
            }
            .div1{background-color:#ff1aaf ;}
            .div2{background-color:#AA86E6 ;}
            .div3{background-color:#189189 ;}
        </style>
    </head>
    <body>
        <div class="div1">撐起div的高度</div>
        <div class="div2">撐起div的高度</div>
        <div class="div3">撐起div的高度</div>
    </body>
</html>

 

js:

// 放到頭部(初始化位置
$(document).ready(function(){
    setHeight();
    $(window).resize(function(){
        setHeight();
    });
})

function setHeight(){
    //alert("12");
    var sWidth=document.documentElement.clientWidth;
    var sHeight=document.documentElement.clientHeight;
    if(sWidth>1366){
        $("html").css("font-size",sWidth/1366*12+"px");
        return;
    }
    if(sHeight>768){
        $("html").css("font-size",sHeight/768*12+"px");
    }
};    

 

一、若使用iframe嵌入頁面(跨域),自適應高度。
問題:初始化調用iframeHeight();同域有效。但對於iframe(class="iframeClass")里嵌入的頁面還是無法自適應高度,不在同瀏覽器或分辨率下,下方出現白色空白。
解決方法:
①.主頁面A.html。嵌入頁面B.html
②.對A.html里任意一菜單class,統一綁定iframeHeight();。內容區iframe嵌入的頁面能夠自適應頁面高度,空白處消失。內容超出自動出滾動條。
③.隱藏A.html里最外層滾動條。只顯示iframe下的滾動條。
④.單位:寬100%,高rem。

$(document).ready(function(){
         $(window).resize(function(){
            iframeHeight();
        });    
         iframeHeight();
     });
     
    function iframeHeight(){
        var sHeight=document.documentElement.clientHeight;
        $(".iframeClass").css("height",(sHeight/12-11.09)+"rem");
    };
    // 獲得總可視區域的高度/12-head塊占了11.09rem的高

如:

$(document).ready(function(){
        $(document).on("click","#menus a",function(){
               iframeHeight();
           });
           
           $(window).resize(function(){
            iframeHeight();
        });    
         iframeHeight();
    });

二、設置點擊某一處,head塊隱藏。

var sHeight=document.documentElement.clientHeight;
    $(".iframeClass").css("height",(sHeight-26)/12+"rem");
    // 獲得總可視區域的高度-標簽頁塊占了26px的高后,除以12
    

如:

 $("控制head隱藏按鈕").click(function(){
        if($("head塊").is(":visible")){
            $("head塊").hide();
            $(this).attr("title","顯示head塊");
            var sHeight=document.documentElement.clientHeight;
            $(".iframeClass").css("height",(sHeight-26)/12+"rem");
            
        }else{
            $("head塊").show();
            $(this).attr("title","隱藏head塊");
        //    $(".iframeClass").css("height","41rem");
            iframeHeight();
        }
    });


免責聲明!

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



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