Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Авто размер всех картинок на странице (https://javascript.ru/forum/misc/13769-avto-razmer-vsekh-kartinok-na-stranice.html)

big_jump 13.12.2010 01:35

Авто размер всех картинок на странице
 
Можно ли сделать так чтобы все картинки внутри тэга img автоматический изменяли свой размер до нужного, если они большего него.

kadabrik 13.12.2010 02:10

Решение на коленке с помощью jquery:
$(function(){
$('img').live('load',function(){
  needWidth = 200;
  needHeight = 200;
  obj = $(this);
  imageOrientation = ((obj.height()>obj.width())?'vertical':'horizontal');
  if (imageOrientation == 'vertical')
     if (obj.height()>needHeight) obj.css('height',needHeight);
  else
     if (obj.width()>needWidth) obj.css('width',needWidth);
});
});

big_jump 13.12.2010 12:43

Мне кажется я что то не так делаю. Если не трудно, не могли бы вы сделать простой пример. Просто я нуб.

ksa 13.12.2010 12:45

Цитата:

Сообщение от big_jump
не могли бы вы сделать простой пример

У нас нет ни исходных данных... Ни нормального описания/иллюстрации того, что тебе нужно получить в итоге...

exec 13.12.2010 13:15

function fitSize(image, h, w) {
	var nh = image.offsetHeight,
	nw = image.offsetWidth;
	image.style.height = (h > w ? h : nh * ( w / nw )) + "px";
	image.style.width = (h > w ? nw * ( h / nh ) : w) + "px";
}


Уменьшает (а может и увеличивать) размеры изображения, сохраняя пропорции.

Пример использования:

<img src='image.png' id='foo' />
<script type='text/javascript'>
	fitSize(document.getElementById("foo"), 100, 150);
	/*
		foo — ID нужного изображения
		100 — нужная высота
		150 — нужная ширина
	*/
</script>

big_jump 13.12.2010 16:35

спасибо откликнувшимся, но пока ничё не получается
залил сайт на скорую руку http://art-aggr.appspot.com/
контент заполняется питоном
вобщем злые картинки упрямятся и не хотят помещаться в колонку

bushstas 15.12.2010 11:56

для начала каждой картинке присвой class
<img src="" class="oneSizeImages">


imgW=100 // требуемая единая ширина картинок
imgH=100  // требуемая единая высота картинок

window.onload=function(){
var IMAGES=document.getElementsByClassName('oneSizeImages') // находим все картинки для которых нужно изменить размеры
for (var i=0; i<IMAGES.length; i++){
IMAGES[i].style.width=imgW+"px"
IMAGES[i].style.height=imgH+"px"
}
}


вот вроде и все
а если нужно привести например к одной ширине сохраняя пропорции то
imgW=100 // требуемая единая ширина картинок


window.onload=function(){
var IMAGES=document.getElementsByClassName('oneSizeImages') // находим все картинки для которых нужно изменить размеры
var w,h
for (var i=0; i<IMAGES.length; i++){
var w=IMAGES[i].offsetWidth
var h=IMAGES[i].offsetHeight
var o=imgW/w
var imgH=h*o
IMAGES[i].style.width=imgW+"px"
IMAGES[i].style.height=imgH+"px"
}
}

kadabrik 15.12.2010 12:45

Проверил, небыли поставлены скобки
$(function(){
$('img').live('load',function(){
  needWidth = 200;
  needHeight = 200;
  obj = $(this);
  imageOrientation = ((obj.height()>obj.width())?'vertical':'horizontal');
  if (imageOrientation == 'vertical')
    {
      if (obj.height()>needHeight) obj.css('height',needHeight);
    }
  else
     if (obj.width()>needWidth) obj.css('width',needWidth);
});
});


Так работает. Скрипт можно запихнуть в любое место, картинки будут ресайзиться сразу после загрузки. В место img можно указать более подробный селектор.

big_jump 15.12.2010 20:55

2 kadabrik
блин не работает скрипт у меня, видимо у меня руки не оттуда растут(
и глупый вопрос, кроме того чтобы вставить скрипт, ничего больше делать не надо?
2 bushstas
а ваш скрипт работает, но вот в чём проблема, контент заполняется автоматически и присвоить класс всем картинкам не получится, а если использовать класс от колонки, то ничего не выравнивается. Может есть какой-нибудь способ автоматически назначит всем картинкам класс или типа того. Я уже и не знаю что придумать.

ещё раз спасибо всем.

bushstas 15.12.2010 21:01

a что там за "автомат"? и почему он не может присвоить им класс??
я не знаю ничего о "питоне", что это? python? и чем он отличается принципиально от php?
тогда нужно найти параметр например src в котором у них есть чтото общее у всех, например в src они загружаются из одной папки, просто если брать их все по имени тега, так ведь на сайте еще много всяких картинок
хотя нет, нужно знать id родителя где они все распологаются
тогда можео будет и по имени тега
просто нужно понять каким образом наполняется контент


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