固定画像
ページと一緒にスクロールするために背景画像が必要ない場合でも、設定すれば背景画像をbody
タグに適用できます。background-attachment: fixed;
body {
background: url('images/bkg-img.png') no-repeat 0 0 fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
}
jQuery
背景画像をページとともにスクロールする必要がある場合は、HTML と CSS を比較的シンプルに保つために、JavaScript または jQuery コードを適用する価値があるかもしれません。
function stretchBg(width, height, contain) {
var pageWidth = $(document).width();
var pageHeight = $(document).height();
if ((pageWidth / pageHeight) > (width / height) == !!contain)
$('body').css({backgroundSize: 'auto ' + pageHeight + 'px'});
else
$('body').css({backgroundSize: pageWidth + 'px auto'});
}
$(document).ready(function(){ stretchBg(640, 480); }); // Page load
$(window).resize(function(){ stretchBg(640, 480); }); // Browser resize
JSFiddle デモ (およびデモのスタンドアロン バージョン)
縦横比を維持するために、画像のネイティブの幅と高さが上記の関数に渡されます。また、背景画像がページを覆うか、ページを含むか (デフォルトはカバー) のオプションの 3 番目のパラメーターも一緒に渡されます。
または、body タグに現在適用されている背景画像のネイティブ解像度を自動的に検出する、より高度なデモ(およびスタンドアロン バージョン) を次に示します。以下は使用例です。
$(document).ready(function(){
FullBodyBackground.init({contain: false});
});