js背景自適應,學到了


最近在做一個項目,要求實現背景自適應,何為背景自適應呢?

1.如果背景圖高度不夠,background-size就應該是 auto 100%

2.如果背景圖寬度不夠,background-size就應該是100% auto 

具體是什么意思呢?還是上代碼看到效果比較有說服力

<!DOCTYPE html>
<html>

    <head>
        <meta charset="UTF-8">
        <meta name="viewport" id="viewport" content="target-densitydpi=1,width=device-width,user-scalable=no,initial-scale=1,minimum-scale=1" />
        <title></title>
        <style type="text/css">
            div {
                position: fixed;
                top: 0;
                left: 0;
                bottom: 0;
                right: 0;
                background-image: url(../img/littleboy.png);
                background-position: center 0;
                background-repeat: no-repeat;
                background-size: 100% auto;
            }
        </style>
    </head>

    <body>
        <div></div>
        <script src="../js/jquery.js" type="text/javascript" charset="utf-8"></script>
        <script type="text/javascript">
            var bg_auto_size = function(src) {
                var dh = document.documentElement.clientHeight;
                var dw = document.documentElement.clientWidth;
                var img_url = src;
                var img = new Image();
                img.src = img_url;
                img.onload = function() {
                    var dRatio = dw / dh;
                    var imgRatio = img.width / img.height;
                    if(dRatio <= imgRatio) {
                        $('div').css({ 'background-size': 'auto 100%', 'background-position': 'center 0' });
                    } else {
                        $('div').css({ 'background-size': '100% auto', 'background-position': 'center 0' });
                    }
                }
            };
            //這個圖片的地址必須是絕對路徑,如果用相對路徑就會報錯,文件識別不出,下面路徑是我隨便找的,不是實際背景的真實絕對路徑
            var bg = 'https://pic.cnblogs.com/avatar/965095/20160526151113.png';
            bg_auto_size(bg);
        </script>
    </body>

</html>

在我們去調用這個背景自適應的函數的時候,這個路徑必須是絕對路徑,如果是相對路徑,那么文件就會識別不出,就會報錯,具體為啥子,我也搞不懂,我只是測試了一下,確實是這樣,這地方,還希望大神能夠指點。

以iPhone4,iPhone5,iPhone6為例展示效果:

 


免責聲明!

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



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