最近在做一個項目,要求實現背景自適應,何為背景自適應呢?
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為例展示效果:



