|
Архив - только для чтения |
Сообщество uCoz » Архивариус » Архив » Скрипт высоты div-ов на js (Найти проблему в скрипте) |
Скрипт высоты div-ов на js |
Нужна помощь со скриптом. Есть 2 div-блока с разной неизвестной высотой. Нужно с помощью скрипта уравнять высоту блоков.
Вот что я пыталась сделать и что не работает: Код var h-content = document.detElementById("#content").style.height; //узнаем высоту 1-ого блока и присваиваем ее переменной var h-right = document.detElementById("#right").style.height; //узнаем высоту 2-ого блока и присваиваем ее переменной h-content = Number(h-content); h-right = Number(h-right); if (h-content>h-right) { var minus = h-content - h-right; var result = h-right + minus; #right.style.height = result + "px"; } else { var minus2 = h-right - h-content; var result2 = h-content + minus2; #content.style.height = result + "px"; } |
Цитата (Леди_Боль) GT, ссылки нет, т. к. сайт лежит на локальном компе. Всю ситуацию я описала, ссылка на сайт тут не нужна, если я правильно понимаю. Гарантировано, что ни с какими другими скриптами скрипт не конфликтует. МОЯ ЖИЗНЬ-МОИ ПРАВИЛА… НЕ НРАВЯТСЯ МОИ ПРАВИЛА????-НЕ ЛЕЗЬ В МОЮ ЖИЗНЬ…
Сообщение отредактировал GT - Воскресенье, 30 Июн 2013, 23:31:25
|
Леди_Боль, Вообще то высота div блоков "образуется" автоматически? кроме случаев если
указана высота если есть float если используется position absolute ... вопрорс решать нужно на месте .... |
Леди_Боль, уравнять можно ещё так
min-height min-width или тоже самое, но max |
webanet, min-height у меня уже стоит (по другой причине). а остальное, я думаю, не поможет:
1. Допустим, в стилях прописан min-height:100px; 2. Допустим, прописан max-height:1000px; 3. А на такой-то странице высота из-за размеров текста равна 900px (но мы эту высоту не знаем, ее знает только браузер). У второго блока первые два пункта такие же, а третий - 800px (эту тоже не знаем). Тут уж не поможет ни min-height, ни max-height. Добавлено (01 Июл 2013, 01:14:14) --------------------------------------------- Цитата (webanet) min-width А при чем тут ширина? Добавлено (01 Июл 2013, 01:16:02) Сообщение отредактировал Леди_Боль - Понедельник, 01 Июл 2013, 01:14:57
|
Леди_Боль, Вам для чего это ? Где хотите применить ???
Сообщение отредактировал Miss_Esq - Понедельник, 01 Июл 2013, 02:42:22
|
Miss_Esq, хочу применить на своем сайте. Эти два блока с неизвестной высотой - это блок content с основным материалом и боковое меню.
Добавлено (01 Июл 2013, 03:14:51) Цитата (Леди_Боль) И ребят, может, скажете, что со скриптом не то? |
Цитата (Леди_Боль) GT, у меня эти 2 блока изменяют высоту в зависимости от того, сколько в них текста. Поэтому, высота неизвестна. Не прописывать же для каждой страницы свою высоту? МОЯ ЖИЗНЬ-МОИ ПРАВИЛА… НЕ НРАВЯТСЯ МОИ ПРАВИЛА????-НЕ ЛЕЗЬ В МОЮ ЖИЗНЬ…
|
Леди_Радость, DIV кагбэ не предназначен для таких случаев
Используйте TABLE И в скрипте _КУЧА_ ошибок. Возможно должно быть так: Код var h_content = document.getElementById("content").style.height; //узнаем высоту 1-ого блока и присваиваем ее переменной var h_right = document.getElementById("right").style.height; //узнаем высоту 2-ого блока и присваиваем ее переменной h_content = parseInt(h_content,10); h_right = parseInt(h_right,10); if (h_content>h_right) { var minus = h_content - h_right; var result = h_right + minus; document.getElementById("right").style.height = result + "px"; } else { var minus2 = h_right - h_content; var result2 = h_content + minus2; document.getElementById("content").style.height = result + "px"; } И располагать его надо в конце HTML-страницы (но до </BODY>). Садитесь, 2 Вы полюбили меня. Здесь я. (с)
Сообщение отредактировал Ferro7 - Понедельник, 01 Июл 2013, 16:44:18
|
GT, не катит.
Ferro7, 1. Там должен быть result2, по логике. Цитата (Ferro7) var h_content = document.getElementById("content").style.height; //узнаем высоту 1-ого блока и присваиваем ее переменной var h_right = document.getElementById("right").style.height; //узнаем высоту 2-ого блока и присваиваем ее переменной h_content = parseInt(h_content,10); h_right = parseInt(h_right,10); if (h_content>h_right) { var minus = h_content - h_right; var result = h_right + minus; document.getElementById("right").style.height = result + "px"; } else { var minus2 = h_right - h_content; var result2 = h_content + minus2; document.getElementById("content").style.height = result + "px"; } И даже если исправить, скрипт все равно не работает. Садитесь, 3+ Добавлено (01 Июл 2013, 22:29:47) --------------------------------------------- ку-ку... Добавлено (01 Июл 2013, 22:56:24) --------------------------------------------- подскажите, пожалуйста, что не так со скриптом. Сообщение отредактировал Леди_Боль - Вторник, 02 Июл 2013, 12:45:35
|
На самом деле, всё так. Просто нужно получать вычисленное значение высоты, а не то, которые прописывается в стилях. Рабочий скрипт: Код <script> var IE = '\v'=='v'; var eContent = document.getElementById("content"); var eRight = document.getElementById("right"); var hContent = IE?eContent.currentStyle.height:window.getComputedStyle(eContent, null).getPropertyValue("height"); var hRight = IE?eRight.currentStyle.height:window.getComputedStyle(eRight, null).getPropertyValue("height"); if (parseInt(hContent, 10) > parseInt(hRight, 10)) eRight.style.height = hContent; else eContent.style.height = hRight; </script> Вы полюбили меня. Здесь я. (с)
Сообщение отредактировал Ferro7 - Пятница, 05 Июл 2013, 19:16:46
|
| |||
| |||