我正在尝试根据窗口大小替换img src
。这不是background-image
。对于移动尺寸,我的图像需要是不同的颜色/图像,然后是更大的屏幕。使用css很容易改变图像的大小,但我认为我需要使用Jquery来替换图像src,但还是无法弄清楚它。有什么指针吗?
这是我的HTML
<a href="" class="logo">
<img id="brand" src="assets/img/image.png" alt="Image">
</a>
这是我的js
$(document).ready(function(){
var windowSize = $( window ).width();
if (windowSize < 400 ) { $('#brand').attr('src', 'assets/img/logo-2.png')};
});
所有这些似乎都是在加载img src时改变窗口大小或调整窗口大小。
- 编辑 - 表格humbolight
$(function(){
var $window = $(window);
var toggleImage = function toggleImage($el, src){
$el.attr('src',src);
};
$window.on('resize',function(){
if ($window.width() < 385){
//mobile
toggleImage($('#brand'),'assets/img/image.png');
} else {
//landscape tablet/desktop
toggleImage($('#brand'),'assets/img/logo-2.png');
}
});
});
答案 0 :(得分:0)
您要完成的操作需要在窗口元素上侦听resize事件并根据更改的宽度更改src(预加载图像不会受到影响):
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<img id="two_size_img" src="img@1x.png" />
$(function () {
$('#container').highcharts({
chart: {
backgroundColor: '#FCFFC5',
type: 'line'
},
xAxis: {
categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
},
yAxis: {
},
legend: {
layout: 'vertical',
backgroundColor: '#FFFFFF',
floating: true,
align: 'left',
x: 100,
verticalAlign: 'top',
y: 70
},
tooltip: {
formatter: function () {
return '<b>' + this.series.name + '</b><br/>' +
this.x + ': ' + this.y;
}
},
plotOptions: {
},
series: [{
data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]
}]
});
});
为了达到同样的目的,我倾向于切换背景图像,完全用CSS处理,或类似地,渲染两个元素(每个图像需要一个图像)并显示/隐藏所需图像 - 再次完全使用CSS