위대한 해결 방법을 찾았습니다. 미디어 쿼리를 사용하는 대신 jQuery의 $ (window) .resize() 함수를 사용하고 현재 창 크기를 기반으로 src 특성을 변경할 수 있습니다. 여기
Codepen : 위대한 펜 더스틴 페이지로 http://codepen.io/dustinpage/pen/ytwjb
$(window).load(function() {
//Wait for images to load before displaying them.
//This prevents image flashing.
resizeImage();
$('.image-resize').show();
});
$(window).resize(function() {
//Whenever the window is resized check to see if new image needed.
//Using the code to call images in Seven7 this way is OPTIONAL.
//Performance will be better if you don't use ".resize" event.
resizeImage();
});
function resizeImage() {
$('.image-resize').each(function() {
var element = $(this),
src = $(this).attr('src'),
regx = /wid=\d+(\.\d)*/g,
currentWidth,
newWidth,
newSrc;
if ($(window).width() > 1824) {
/* Large Displays ----------- */
//Return large image if screen size is over 768px
currentWidth = src.match(regx);
newWidth = 'wid=2000';
newSrc = src.replace(currentWidth, newWidth);
//Begin temporary code for testing output
textWidth = newWidth.replace('wid=', '');
$(".dsply-screen-size").text($(window).width());
$(".dsply-image-size").text(textWidth);
//End temporary code for testing output
}
else if ($(window).width() <= 1824 && $(window).width() > 1366) {
/* Desktops ----------- */
//Return large image if screen size is over 768px
currentWidth = src.match(regx);
newWidth = 'wid=1824';
newSrc = src.replace(currentWidth, newWidth);
//Begin temporary code for testing output
textWidth = newWidth.replace('wid=', '');
$(".dsply-screen-size").text($(window).width());
$(".dsply-image-size").text(textWidth);
//End temporary code for testing output
}
else if ($(window).width() <= 1366 && $(window).width() > 767) {
/* Desktops ----------- */
//Return large image if screen size is over 768px
currentWidth = src.match(regx);
newWidth = 'wid=1024';
newSrc = src.replace(currentWidth, newWidth);
//Begin temporary code for testing output
textWidth = newWidth.replace('wid=', '');
$(".dsply-screen-size").text($(window).width());
$(".dsply-image-size").text(textWidth);
//End temporary code for testing output
}
else if ($(window).width() <= 767 && $(window).width() > 480) {
/* Tablets (portrait) ----------- */
//Return medium image if screen size is between 481-767px
currentWidth = src.match(regx);
newWidth = 'wid=767';
newSrc = src.replace(currentWidth, newWidth);
//Begin temporary code for testing output
textWidth = newWidth.replace('wid=', '');
$(".dsply-screen-size").text($(window).width());
$(".dsply-image-size").text(textWidth);
//End temporary code for testing output
}
else if ($(window).width() <= 480) {
/* Smartphones ----------- */
//Return small image if screen size is less than 480
//Note: Default image state is small so this "else if" is technically not needed.
currentWidth = src.match(regx);
newWidth = 'wid=480';
newSrc = src.replace(currentWidth, newWidth);
//Begin temporary code for testing output
textWidth = newWidth.replace('wid=', '');
$(".dsply-screen-size").text($(window).width());
$(".dsply-image-size").text(textWidth);
//End temporary code for testing output
}
element.attr('src', newSrc);
});
};
신용.