Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Задание атрибута, в зависимости от пропорций изображения (https://javascript.ru/forum/jquery/29790-zadanie-atributa-v-zavisimosti-ot-proporcijj-izobrazheniya.html)

ddale 11.07.2012 13:14

Задание атрибута, в зависимости от пропорций изображения
 
Привет, ребята. Очень душно, но работать надо. -)

Посмотрите пожалуйста, почему не работает этот маленький скрипт.

// Берем все необходимые нам изображения.
	var $img = $('#pano > img');

    // Дожидаемся загрузки изображения браузером.
    $img.load(function(){
 
	    // Кладем указатель на изображение в переменную, дабы каждый раз не вызывать функцию и не нагружать дополнительно браузер.
	    var CurImg = $(this);
	 
	    // Если заданы атрибуты width и height - удаляем их.
	    CurImg.removeAttr("width")
	          .removeAttr("height")
	          // А также перестраховываемся насчет CSS-свойств.
	          .css({ width: "", height: "" });
	 
	    // Получаем реальные ширину и высоту.
	    var width  = CurImg.width();
	    var height = CurImg.height();
	 
	    // Если изображение больше допустимой ширины или высоты (maxSize), задаем ее соответствующими атрибутами.
	    if (width > height) CurImg.attr('height', '100%');
	    else if (height > width) CurImg.attr('width', '100%');
	    else if (height == width) CurImg.attr('width', '100%');
    
	});


Он должен назначать атрибут для <img> в зависимости от пропорций изображения

Deff 11.07.2012 13:26

ddale,
Проще заготовить пустую форму
var img='<img class="imgSlide" srs="!href!" width="100%" height="100%">
Для неё заранее выставить css
<style>
img.imgSlide {
 width:100%!important;
 height:100%!important;
}
</style>


Затем в скрипте считать атрибут src и заменить текущее изображение - изображением созданным из нашей заготовки
var img='<img  class="imgSlide" srs="!href!" width="100%" height="100%">';
//Тут each (function(){
var ThisImg = $(this).attr("src");
var ThisImg=img.replace('!href!',src);
$(this).replaceWidth(ThisImg)
});


Часовой пояс GMT +3, время: 19:39.