このソリューションでは、CSS を使用して背景画像が読み込まれないようにし、jQuery を使用して画像が読み込まれないようにします。画像の読み込みを妨げる CSS ソリューションに精通していません。
JS フィドル: http://jsfiddle.net/CoryDanielson/rLKuE/6/
画像の高さと幅 (または比率) が事前にわかっている場合は、一連background-image
の固定サイズの DIV を設定できます。これは、アイコンやレイアウト タイプの画像に適用される場合があります。その例として、以下の HTML/CSS を見てください。
背景画像
/* hidden by default */
aside {
display: none;
}
/* Pictures load for 'big screen' users.. pcs/tablets? */
@media screen and (min-width: 750px) {
aside {
display: block;
}
.catpicDiv {
height: 100px;
width: 100px;
display: inline-block;
border: 1px solid red;
background-image: url('http://img2.timeinc.net/health/images/slides/poodle-1-400x400.jpg');
background-size: cover;
}
}
とHTML
<aside>
<div class="catpicDiv"></div>
<div class="catpicDiv"></div>
<div class="catpicDiv"></div>
</aside>
画像要素は別の話です...
画像の読み込みを防ぐための純粋な CSS ソリューションについては知りません。だから私はこのようにそれを解決します:
IMG タグを次のように定義します。
<img src="" data-src="url-to-image.jpg" />
次に、ドキュメントの頭のどこかに同様の JavaScript が必要です
1) 全画像読み込み機能
function loadAllTheImages() {
$("img").each(function(){
$(this).attr('src', $(this).attr('data-src'));
});
}
2) ユーザーがモバイルと PC のどちらを使用しているか (低速接続と高速接続) を判断し、画像を読み込むコード。このコードは防弾ではありません。これよりもはるかに正確で合理的なテストがあります。
$(window).load(function(){
if ( $(window).width() > 750 ) {
loadAllTheImages(); // !
} else {
$("body").append("<a id='mobileCheck' href='javascript: void(0);'>I GOTS 4G, LEMME HAVE EM!</a>");
}
});
3)とにかく画像をロードするボタンをアクティブにするためのコードはありますか? なぜでしょうか... ?
$(document).ready(function(){
$('body').prepend("<h1>" + $(window).width().toString() + "</h1>");
$('body').on('click', '#mobileCheck', function(){
loadAllTheImages(); // !
$("#mobileCheck").remove();
});
});
here と同様の解決策と、コメントで仮説を立てたもの:
jQuery で画像の読み込みを遅らせる