【发布时间】:2015-03-19 07:23:54
【问题描述】:
在这个问题上真的很挣扎。我正在尝试为不同的窗口宽度(响应式设计)替换 img src,但我无法让它工作。如果我使用$(window).resize(),它可以正常工作,但这只会改变实际窗口大小的图像 src,将浏览器窗口向后和第四次拖动。
我无法做到的是在加载时使用所需的 img src,而不管调整浏览器窗口的大小。我知道这有点令人困惑,所以我下面的代码将解释我想要做得更好的事情。非常感谢您对此的帮助!
$(function(){
if($(window).width() >= 0 && $(window).width() <= 400){
$("img").attr("src","small.jpg");
}
else if($(window).width() > 400 && $(window).width() <= 768){
$("img").attr("src","medium.jpg");
}
else{
$("img").attr("src","large.jpg");
}
});
【问题讨论】:
-
我真的不明白为什么你的代码不应该像现在这样工作......
-
我知道我已经盯着它看了好几个小时,寻找小错误,但它就是行不通!它只会加载我的 html 中的标准 img src。如果我使用
$(window).resize()而不是$(function()),图像将会改变,但如果你知道我的意思,我不想拖动浏览器来强制改变图像。 -
您为什么通过 JS 而不是 CSS
@media声明来执行此操作?这样您就不必缩小图像了吗? -
正是如此,加上使用
@media,我不得不使用背景图像并设置height和width,这会破坏图像的响应能力,除非你知道更好的方法? -
正如预期的那样,它运行良好:jsfiddle.net/ta7fss9d/1您做错了其他事情,该代码是正确且有效的。
标签: javascript jquery css responsive-design