Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.08.2013, 14:26
Аспирант
Отправить личное сообщение для razorg1991 Посмотреть профиль Найти все сообщения от razorg1991
 
Регистрация: 10.11.2012
Сообщений: 98

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

window.onload = function() {
  setTimeout(function() {
      var mainDivs = document.getElementsByClassName("blok1");
      var maxHeight = 0;
      for (var i = 0; i < mainDivs.length; ++i) {
        if (maxHeight < mainDivs[i].clientHeight) {
          maxHeight = mainDivs[i].clientHeight; 
        }
      }
      for (var i = 0; i < mainDivs.length; ++i) {
        mainDivs[i].style.height = maxHeight + "px";
      }
    }, 1000);
}


Но возникла маленькая проблема. Мне нужно выравнивание нескольких блоков с разными классами.
Т.е. допустим есть блоки с классом "blok1", я их выровнял.
Теперь нужно еще выровнять все блоки с классом "blok2".
Если ниже написать тот же код только с классом "blok2" (в том де js файле где и этот скрипт), то выравнивание происходит теперь только для блоков с классом "blok2".

Я в js не силен. Никто не подскажет как допилить это скрипт, чтобы он работал и для других классов тоже?
Ответить с цитированием
  #2 (permalink)  
Старый 27.08.2013, 14:28
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Сообщение от razorg1991
как допилить это скрипт, чтобы он работал и для других классов тоже?
Открой для себя параметры функций и циклы...

Сообщение от razorg1991
Я в js не силен.
А, ну да...

А в чем силен?
Ответить с цитированием
  #3 (permalink)  
Старый 27.08.2013, 14:46
Аспирант
Отправить личное сообщение для razorg1991 Посмотреть профиль Найти все сообщения от razorg1991
 
Регистрация: 10.11.2012
Сообщений: 98

Сообщение от ksa Посмотреть сообщение
Открой для себя параметры функций и циклы...


А, ну да...

А в чем силен?
ну php более менее знаю, он как-то попроще

Последний раз редактировалось razorg1991, 27.08.2013 в 14:57.
Ответить с цитированием
  #4 (permalink)  
Старый 27.08.2013, 14:48
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Сообщение от razorg1991
ну php более менее знаю, он как-то попроще
Там так же есть функции, параметры функций и циклы...
Ответить с цитированием
  #5 (permalink)  
Старый 27.08.2013, 14:58
Аспирант
Отправить личное сообщение для razorg1991 Посмотреть профиль Найти все сообщения от razorg1991
 
Регистрация: 10.11.2012
Сообщений: 98

Циклы говорите... Т.е. обернуть скрипт в цикл пока он его не выполнит для всех классов? Только камнями не кидайте, если бред сейчас написал
Ответить с цитированием
  #6 (permalink)  
Старый 27.08.2013, 14:58
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Сообщение от razorg1991
Т.е. обернуть скрипт в цикл пока он его не выполнит для всех классов?
Неее. Не так.

Как вариант...

<!DOCTYPE html>
<html>
<head>
<!--
<script src="http://code.jquery.com/jquery-latest.js"></script>
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
</style>
<script type="text/javascript">
window.onload = function() {
	var a=[
		'blok1',
		'blok2',
		'blokN'
	];
	for (var i=0; i<a.length; i++) {
		setTimeout((function(Name) {
			return function () {correctionHeight(Name);};
		})(a[i]), 1000);
	};
};
function correctionHeight(Name) {
	/* две стороки ниже убрать */
	alert(Name);
	return
	var mainDivs = document.getElementsByClassName(Name);
	var maxHeight = 0;
	for (var i = 0; i < mainDivs.length; ++i) {
		if (maxHeight < mainDivs[i].clientHeight) {
			maxHeight = mainDivs[i].clientHeight; 
		}
	}
	for (var i = 0; i < mainDivs.length; ++i) {
		mainDivs[i].style.height = maxHeight + "px";
	}
};
</script>
</head>
<body>
</body>
</html>
Ответить с цитированием
  #7 (permalink)  
Старый 27.08.2013, 15:02
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Или вовсе поколхозному...

window.onload = function() {
	setTimeout(function() {
		correctionHeight('blok1');
	}, 1000);
	setTimeout(function() {
		correctionHeight('blok2');
	}, 1000);
	setTimeout(function() {
		correctionHeight('blokN');
	}, 1000);
};
Ответить с цитированием
  #8 (permalink)  
Старый 27.08.2013, 15:03
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Или всех скопом!

window.onload = function() {
	setTimeout(function() {
		correctionHeight('blok1');
		correctionHeight('blok2');
		correctionHeight('blokN');
	}, 1000);
};
Ответить с цитированием
  #9 (permalink)  
Старый 27.08.2013, 15:10
Аспирант
Отправить личное сообщение для razorg1991 Посмотреть профиль Найти все сообщения от razorg1991
 
Регистрация: 10.11.2012
Сообщений: 98

Ааааа. Заработало

Первый вариант! СПАСИБО))))
Т.е. как я понял первая часть что-то вроде перебирает классы, а вторая уже непосредственно делает дело?
Ответить с цитированием
  #10 (permalink)  
Старый 27.08.2013, 15:17
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Сообщение от razorg1991
перебирает классы
Там нет никаких классов...
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сборка страницы из блоков разной ширины и высоты Tmin10 Элементы интерфейса 1 20.08.2013 17:30
не работает в IE скрипт для кросс-доменного вычисления высоты iframe i.lyadov Internet Explorer 5 02.03.2013 02:35
Скрипт сворачиваемых блоков, как доработать? varik Общие вопросы Javascript 0 25.10.2012 10:00
количество блоков от высоты окна segajb jQuery 4 18.10.2012 10:22