这将适用于一两件事。对于站点范围的图像加载首选项,还有其他解决方案。
有关示例,请参见此代码笔。我已经在开发工具中检查了它,以确保不会加载大图像。
因此,您可以找到窗口宽度并将其存储在名为(无论您想要什么)我称之为它.width()
的变量中。然后是一个 if 语句。如果窗口宽度大于 1200 像素(很糟糕,你不能使用 em)---那么,加载这个图像 - 否则,加载这个较小的图像。要将其放入 DOM,请将 html 附加到现有的 div 中 wWidth
.appendTo()
$(function () {
var wWidth = $(window).width();
if (wWidth > 1200) {
$('<img alt="larger image" src="http://placehold.it/1200/1200"/>').appendTo('.sidebar');
$('.sidebar a').hide();
} else {
$('<img alt="smaller image" src="http://placehold.it/600/600" />').appendTo('.sidebar');
}
});
这个例子是针对地图的……所以如果他们想加载谷歌地图,我有一个链接,他们可以点击加载更好的地图。(但是,如果窗口很大,我就不需要那个链接 - 所以我把它藏起来了.hide()
编辑 04/2014
截至 2014 年 4 月,我一直在用 attr() 切换 src,所以这样,您只需将图像用于移动设备,然后如果它是大屏幕,您可以插入更大图像的源...但是然后您加载 2图像...所以您可以改为加载 1px x 1px 空白 gif 或其他东西开始...并给它一个接近您想要的比率的宽度和高度...
这里有一个新的 CodePen:
HTML
<div class='image-w thing' id='target01'>
<!-- standard image for small screens or a blank gif or something -->
<img src='http://placehold.it/640x640&text=Default-image' alt='' />
</div>
jQuery
var imageSizeThing = function() {
var windowWidth = $(window).width();
if ( windowWidth < 501 ) {
// if you start with a blank gif or something
$('#target01 img').attr('src','http://placehold.it/640x640&text=Default-image');
} if ( windowWidth > 500 ) {
$('#target01 img').attr('src','http://placehold.it/1000x1000');
} if ( windowWidth > 900 ) {
$('#target01 img').attr('src','http://placehold.it/1800x1800');
} if ( windowWidth > 1200 ) {
$('#target01 img').attr('src','http://placehold.it/2400x2400');
}
};
// call it on DOM ready, and if it makes sense, when the window resizes
$(document).ready(imageSizeThing);
$(window).resize(imageSizeThing);