引用这篇文章:
通过 CSS 或元素内联设置的隐藏元素的图像 [背景] 每次都会加载,这与我们的想法/预期相反。
但是未加载包含背景图像的未使用的 css 规则。
所以你可以做的是,只有在视口大于 X 的情况下,才使用 javascript/jquery 动态添加背景图像类。
这是一个简单的演示如何做到这一点。
HTML
<div id="yourdiv"></div>
CSS
#yourdiv {
background:yellow;
}
#yourdiv.backgrounded {
background:url(your-image.jpg) top left no-repeat;
}
jQuery
$(window).on('load resize',function(){
var w=window,
d=document,
e=d.documentElement,
g=d.getElementsByTagName('body')[0];
var docWidth = w.innerWidth||e.clientWidth||g.clientWidth;
if(docWidth>600){ /* replace 600 with the screen width you want to target */
yourdiv.addClass('backgrounded');
}
});
(jsFiddle 不会触发load
,所以你必须调整文档的大小才能看到它的工作)
警告:这可能会导致图像“延迟”加载,因此请务必测试结果。