Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Min-height для блоков с помощью JavaScript (https://javascript.ru/forum/misc/30082-min-height-dlya-blokov-s-pomoshhyu-javascript.html)

STyLe 23.07.2012 16:17

Min-height для блоков с помощью JavaScript
 
Добрый день уважаемые друзья!
Говорю сразу: Я не из тех лентяев, которые задают вопрос из-за нежелания что-то сделать самим. Я чуток другим занимаюсь, но вопрос ребром.
Итак, суть вопроса. Имеем код, наиболее приблежённый к моей проблеме:
$(document).ready(function() {
 function setEqualHeight(columns)
 {
 var tallestcolumn = 0;
 columns.each(
 function()
 {
 currentHeight = $(this).height();
 if(currentHeight > tallestcolumn)
 {
 tallestcolumn  = currentHeight;
 }
 }
 );
 columns.height(tallestcolumn);
 }
 setEqualHeight($("#bar1,#bar2,#bar3,#bar99));
});


Код сравнивает высоты #bar1,#bar2,#bar3,#bar99, берёт наибольшую, и для всех элементов прописывает свойство наибольшей вычисленой высоты в "инлайн-стайл" для указаных элементов.
Вопросы:
1) Как сделать так чтобы он брал к сравнению не полную высоту #bar1, а высоту с вычетом 250px?
2) Какие внести изменения, чтобы код по-прежнему сравнивал высоты, а в "инлайн-стайл" для элементов записывал не "height", а именно "min-height"?

P.S: Я по-большому счету из-за этого зарегестрировался))) Знаю что вопрос скорее всего не очень сложный... У меня есть друг который работает с JS(специально обученый человек:victory: ), но с другом нет связи...
Как говорят: зачем точить топор если мне уже рубить охота))
Будьте так добры помогите.
Заранее спасибо.

lord2kim 23.07.2012 16:22

STyLe,
Цитата:

Сообщение от STyLe (Сообщение 190958)
1) Как сделать так чтобы он брал к сравнению не полную высоту #bar1, а высоту с вычетом 250px?

currentHeight = $(this).height() - 250;


к тому же в 17 строке должен быть массив,а не "строка"...

Цитата:

Сообщение от STyLe (Сообщение 190958)
2) Какие внести изменения, чтобы код по-прежнему сравнивал высоты, а в "инлайн-стайл" для элементов записывал не "height", а именно "min-height"?

попробуйте
columns.minHeight(tallestcolumn);

но не уверен...

STyLe 23.07.2012 16:31

Цитата:

Сообщение от lord2kim (Сообщение 190959)
STyLe,

currentHeight = $(this).height() - 250;


к тому же в 17 строке должен быть массив,а не "строка"...

Да кавычку действительно забыл впечатать. Спасибо за внимание.
Но, я так понимаю, из Вашего совета вытекает что 250 px будут вычетатся со всех блоков? А мне нужно лишь чтобы вычиталось лишь с #bar1... или я неправильно Вас понял? Вообщем пошел пробовать...

Deff 23.07.2012 16:38

STyLe,
Возможно так прокатит в концовке скрипта
columns.height(tallestcolumn-250);
 setEqualHeight($("#bar1"));
 columns.height(tallestcolumn+250);
 setEqualHeight($("#bar2,#bar3,#bar99"));
});


Ксать там с кавыками еще походу траблы
Дали б ссылку на Демо страницу

STyLe 23.07.2012 17:17

Цитата:

Сообщение от lord2kim
попробуйте
columns.minHeight(tallestcolumn);
но не уверен...

Не сработало, я так понимаю с мин.высотой не судьба, но вот с первым вопросом...Есть решение 100%... И оно где-то рядом...
Цитата:

Сообщение от Deff (Сообщение 190963)
STyLe,
Возможно так прокатит в концовке скрипта
columns.height(tallestcolumn-250);
 setEqualHeight($(#bar1));
 columns.height(tallestcolumn+250);
 setEqualHeight($(#bar2,#bar3,#bar99));
});

Не прокатило(

lord2kim 23.07.2012 17:34

STyLe, как вариант
$(document).ready(function() {
 function setEqualHeight(columns)
 {
 var tallestcolumn = 0;
 $.each(columns, 
 function(i)
 {
 currentHeight = (i == 0 ? $(this).height() - 250 : $(this).height());
 if(currentHeight > tallestcolumn)
 {
 tallestcolumn  = currentHeight;
 }
 }
 );
 //columns.height(tallestcolumn);
 }
 setEqualHeight(["#bar1","#bar2","#bar3","#bar99"]);
});


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