Я пытаюсь изменить размер изображения в зависимости от размера/изменения размера браузера с помощью JQuery.
Я хочу, чтобы изображение масштабировалось и сохраняло его соотношение, а не обрезалось.
Я использую Bootstrap, и мой HTML выглядит так:
<div class = "container-fluid">
<div class = "row">
<div class = "col-sm">
<div class = "text-block">
<h1>Hellow World</h1>
<h6>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</h6>
</div>
</div>
<div class = "col-sm img-container">
<img src = "image.png" />
</div>
<div class = "col-sm">
<div class = "text-block">
<h6>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum</h6>
</div>
</div>
</div>
</div>
Изображение находится в div .img-container, и мой JQuery выглядит так:
$(document).ready(function() {
$(window).resize(function() {
var img = $("img");
var image = $(".img-container").find(img);
var browserRatio = $(this).width() / $(this).height();
var imageRatio = image.width() / image.height();
if (browserRatio > imageRatio) {
$(".img-container").find(img).css({ "width": "100%", "height": "auto"});
}
else if (imageRatio > browserRatio) {
$(".img-container").find(img).css({ "width": "auto", "height": "100%"});
}
console.info("Browser ratio is :" + browserRatio);
console.info("Image ratio is:" + imageRatio);
});
});
Как вы можете видеть, я беру соотношение высоты и ширины браузера по мере его изменения, а затем проверяю, больше или меньше соотношение изображения, чем соотношение браузера, а затем пытаюсь настроить его с помощью css.
Это не работает, и ширина изображения не поддерживает его соотношение. Что не так с моим кодом?
Динамический. Начинается с малого, и по мере того, как браузер становится больше, изображение растет и начинает заползать в соседнее пространство div, а соседние div становятся меньше.
Вы заранее знаете аспектное радио?
Исходное изображение 450 X 750
Видео не имеет смысла. Вы хотите, чтобы размер центрального элемента никогда не превышал 450x750?
Это домашнее задание на собеседовании. Честно говоря, я сам немного смущен этим. Пытаюсь изо всех сил подражать тому, что происходит в видео, и я в тупике.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Недавно я ответил на тот же вопрос, просто используя CSS https://jsfiddle.net/nazimboudeffa/j6kwtgxa/
html, body {
height: 100%;
margin: 0;
padding: 0;
}
img {
padding: 0;
display: block;
margin: 0 auto;
max-height: 100%;
max-width: 100%;
}
Не работает для меня. Изображение имеет два элемента div с каждой стороны и должно поддерживать соотношение высоты и ширины, даже если два соседних элемента div изменяют размер.
Вы пытались заменить img на div в моем примере?
Является ли размер изображения динамическим или соотношение будет известно заранее?