あなたが何をしたいのか、あなたの<body>
の隠し要素と直接の子としてのイメージを配置します。 (
body {
background: transparent url(https://dummyimage.com/2500x3500/000000/fff) no-repeat 50% top /cover;
margin: 0;
}
body>img.hidden {
position: absolute;
visibility: hidden;
width: 100%;
height: auto;
}
<img class="hidden" src="https://dummyimage.com/2500x3500/000000/fff" />
このページの読み込み時間に影響を与えません。これは自動的にあなたも、あなたのイメージが応答するために、いくつかのCSS
を使用して、(width:100%; height:auto
)をご<body>
<img>
の割合を継承させるだろうsrc
が<img>
で、background-image
のプロパティが<body>
の場合、画像は1回だけダウンロードされます。
また、あなたは<img>
その場で作成され、自動的に<body>
に配置したい場合は、ここでbody
のbackground-image
性質を解析し、あなたのため<img>
を追加するための小さなスクリプトです:
$(window).on('load', function(){
var body = $('body'),
imagePath = body.css('background-image').replace('url("', '').replace('")',''),
img = $('<img />', {
class:'hidden',
src:imagePath
});
body.prepend(img);
})
background-image
は、<img>
ではありません。画像にはvisibility:hidden
があり、ブラウザでは表示されません。また、私は準備をしていますが、追加していません。 <body>
の最初の子であれば、通常のコンテンツフローより下にレンダリングされます。追加された場合は、z-index: -1
またはpointer-events: none
が必要になります。これにより、タッチイベントが実際のコンテンツに渡るようになります。
質問が分かりません。あなたは背景をスクロールできるようにしたいですか? – jordaniac89