У меня есть изображение баннера, которое видно только, когда я устанавливаю фиксированную высоту, я хочу сделать ее отзывчивой, поэтому единственный способ, которым я думал, - это вычислить высоту изображения с шириной окна.
функция вычисления высоты: windowWidth/1.845
как я могу применить эту функцию к div css с jquery/javascript?
Я пробовал эту функцию, но она не работала
$(document).ready(function(){
var originalWidth = $( window ).width();
var newHeight = originalWidth/+(1.845)
;
function resize() {
$("#ei-slider").css("height", newHeight);
}
$(".target").each(resize);
$(document).resize(function(){
$("ei-slider").each(resize);
});
});
Попробуйте добавить(), когда вы вызываете изменение своей функции
$(".target").each(resize());
$(document).resize(function(){
$(".ei-slider").each(resize());
});
Кроме того, вы пропустите точку перед ei-slider
И я настоятельно рекомендую вам использовать backstretch jquery plugin. http://srobbin.com/jquery-plugins/backstretch/
Почему изображение отображается только при установке фиксированной высоты? Изображение было бы "отзывчивым" автоматически, если бы вы сделали это в своем CSS.
img {
max-width: 100%;
width: 100%;
}
Однако, если вам нужно делать другие вещи при изменении размера, вы, вероятно, захотите прослушивать размеры на window
а не на document
.
$(document).ready(function () {
var $window = $(window);
var originalWidth = $window.width();
var newHeight = originalWidth / 1.845;
function resize() {
// This will be .target or .ei-slider based on where it called.
$(this).css("height", newHeight);
};
$(".target").each(resize);
$window.on('resize', function(){
$(".ei-slider").each(resize);
});
});
$("ei-slider").each(resize);
что-то здесь?.
передei-slider
?