У меня есть изображения, которые будут довольно большими по размеру, и я хочу уменьшить их с помощью jQuery, сохраняя пропорции, то есть те же пропорции.
Может кто-нибудь указать мне код или объяснить логику?
javascript
jquery
image
resize
Коби
источник
источник
max-width
иmax-height
в100%
.<img src='image.jpg' width=200>
Ответы:
Посмотрите на этот кусок кода с http://ericjuden.com/2009/07/jquery-image-resize/
источник
max-width
иmax-height
на100%
. jsfiddle.net/9EQ5cЯ думаю, что это действительно крутой метод :
источник
Math.floor
это действительно поможет с идеальным дизайном пикселей :-)function imgSizeFit(img, maxWidth, maxHeight){ var ratio = Math.min(1, maxWidth / img.naturalWidth, maxHeight / img.naturalHeight); img.style.width = img.naturalWidth * ratio + 'px'; img.style.height = img.naturalHeight * ratio + 'px'; }
Если я правильно понимаю вопрос, вам даже не нужен jQuery для этого. Пропорциональное сжатие изображения на клиенте может быть выполнено только с помощью CSS: просто установите его
max-width
иmax-height
на100%
.Вот скрипка: http://jsfiddle.net/9EQ5c/
источник
width: auto; height: auto;
чтобы ваш код работал :)Чтобы определить соотношение сторон , вам нужно иметь соотношение, к которому нужно стремиться.
В этом примере я использую
16:10
это типичное соотношение сторон монитора.Результаты сверху будут
147
и300
источник
на самом деле я только что столкнулся с этой проблемой, и решение, которое я нашел, было странно простым и странным
и чудесным образом изображение изменяется до новой высоты и сохраняет то же соотношение!
источник
Есть 4 параметра для этой проблемы
И есть 3 разных условных параметра
решение
это все, что вам нужно сделать.
Это зрелый форум, я не даю вам код для этого :)
источник
Имеет ли
<img src="/path/to/pic.jpg" style="max-width:XXXpx; max-height:YYYpx;" >
?Браузер позаботится о сохранении пропорций.
т.е.
max-width
включается, когда ширина изображения больше высоты и его высота будет рассчитываться пропорционально. так жеmax-height
будет действовать, когда высота больше ширины.Вам не нужно jQuery или javascript для этого.
Поддерживается ie7 + и другими браузерами ( http://caniuse.com/minmaxwh ).
источник
Это должно работать для изображений со всеми возможными пропорциями
источник
Вот исправление к ответу Mehdiway. Новая ширина и / или высота не были установлены на максимальное значение. Хороший тестовый пример: (1768 x 1075 пикселей): http://spacecoastsports.com/wp-content/uploads/2014/06/sportsballs1.png . (Я не смог прокомментировать это выше из-за отсутствия очков репутации.)
источник
источник
Если изображение пропорционально, то этот код заполнит упаковку изображением. Если изображение не пропорционально, дополнительная ширина / высота будет обрезана.
источник
Без дополнительных временных переменных или скобок.
Имейте в виду: поисковым системам это не нравится, если атрибуты width и height не соответствуют изображению, но они не знают JS.
источник
После некоторых проб и ошибок я пришел к этому решению:
источник
Изменение размера может быть достигнуто (поддержание соотношения сторон) с помощью CSS. Это еще один упрощенный ответ, вдохновленный постом Дэна Даскалеску.
http://jsbin.com/viqare
источник
2 шага:
Шаг 1) рассчитать соотношение исходной ширины / исходной высоты изображения.
Шаг 2) умножьте соотношение original_width / original_height на новую желаемую высоту, чтобы получить новую ширину, соответствующую новой высоте.
источник
Эта проблема может быть решена с помощью CSS.
источник
Изменить размер, чтобы соответствовать контейнеру, получить коэффициент масштабирования, уменьшить процент управления
источник
Это полностью сработало для меня для перетаскиваемого элемента - aspectRatio: true
источник