此解决方案使用 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();
});
});
与此处类似的解决方案以及我在评论中的假设:
使用 jQuery 延迟图像加载