|
|
|
| Здравствуйте Уважаемое сообщество.
Пишу JS который приравнивает высоту сайтбара к высоте контента.
<script type="text/javascript">
onload = function ()
{
var CONTENT = document.getElementById('box_content').offsetHeight;
var LS = document.getElementById('sideLeft').offsetHeight;
var RS = document.getElementById('sideRight').offsetHeight;
if ((CONTENT<LS) || (CONTENT<RS)) {
LS=650;
document.getElementById('sideLeft').style.height = LS+'px';
document.getElementById('sideRight').style.height = LS+'px';
document.getElementById('box_content').style.height = 605+'px';
}
if ((CONTENT>LS) || (CONTENT>RS)) {
document.getElementById('sideLeft').style.height = CONTENT+'px';
document.getElementById('sideRight').style.height = CONTENT+'px';
}
if ((CONTENT<RS) && ((RS>LS)) {
document.getElementById('sideRight').style.height = RS+'px';
document.getElementById('sideLeft').style.height = RS+'px';
document.getElementById('box_content').style.height = RS+'px';
}
}
</script>
|
Здесь рассматриваются несколько условий.
Правда где-то ошибка, не могу понять где, не поможете?
- Может скобка гду утерена, по коду смотрел вроде всё правильно
- может сама конструкция записи if {} if {} if {} неправильна если количество if {} = 2 то скрипт выполняется. | |
|
|
|
|
|
|
|
для: pautina
(16.11.2010 в 20:57)
| |
function ge(id)
{
return document.getElementById(id);
}
|
| |
|
|
|
|
|
|
|
для: pautina
(16.11.2010 в 20:57)
| |
<script>
onload = function ()
{
with (document)
{
var h = [605,
getElementById ('box_content').offsetHeight,
getElementById ('sideLeft').offsetHeight,
getElementById ('sideRight').offsetHeight].sort ();
getElementById ('sideLeft').style.height =
getElementById ('sideRight').style.height =
getElementById ('box_content').style.height = h [3] + 'px';
}
}
</script>
| Тот, кто напишет <script type="text/javascript"> - тот дурак.
Кто не спрятался, я не виноват! | |
|
|
|
|
|
|
|
для: АЯ
(17.11.2010 в 09:19)
| | Тот, кто напишет <script type="text/javascript"> - тот дурак.
================================================
скажите это валидатору | |
|
|
|
|
|
|
|
для: elenaki
(17.11.2010 в 09:59)
| | Да АЯ крутой код написал.
Я бы хотел в этом участке разобратся
<script type="text/javascript">
onload = function ()
{
var CONTENT = document.getElementById('box_content').offsetHeight;
var LS = document.getElementById('sideLeft').offsetHeight;
var RS = document.getElementById('sideRight').offsetHeight;
if ((CONTENT<LS) || (CONTENT<RS)) {
LS=650;
document.getElementById('sideLeft').style.height = LS+'px';
document.getElementById('sideRight').style.height = LS+'px';
document.getElementById('box_content').style.height = 605+'px';
}
if ((CONTENT>LS) || (CONTENT>RS)) {
document.getElementById('sideLeft').style.height = CONTENT+'px';
document.getElementById('sideRight').style.height = CONTENT+'px';
}
if ((CONTENT<RS) && ((RS>LS)) {
document.getElementById('sideRight').style.height = RS+'px';
document.getElementById('sideLeft').style.height = RS+'px';
document.getElementById('box_content').style.height = RS+'px';
}
}
</script>
|
Где в этом скрипте может быть ошибка.
Скрипт не выполняется. | |
|
|
|
|
|
|
|
для: elenaki
(17.11.2010 в 09:59)
| | Говорю: "Валидатор - дурак!" :-) | |
|
|
|
|
|
|
|
для: АЯ
(17.11.2010 в 11:15)
| | Хорошо type="text/javascript" уберу.
Ошибки валидности всё равно возникают, имена переменных нужно писать с маленькой буквы?
Или в чём то ещё могут быть ошибки по валидности? | |
|
|
|
|
|
|
|
для: pautina
(17.11.2010 в 11:42)
| | Вы определитесь, наконец-то...
Вам чего НАДО, мать-мать-мать-перемать?
1. Чтобы работало? Так я Вам дал работающий вариант.
2. Чтобы работал бред, написанный вами? Почему у Вас такое извращённое желание - чтобы работало всякое ГОВНО, Вами из Вашей головы испражнённое?
3. Чтобы работало, да ещё было и валидно? "Ошибок валидности" не существует! Это придурками придумано. Зарубите себе это на носу! Нормальному человеку "насрать и розами засыпать" на то, что какой-то неизвестный хрен с горы выдаёт в качестве рекомендаций по валидности. Понятно? Для нормального человека главное - чтобы работало. Чётко, уверенно и везде. | |
|
|
|
|
|
|
|
для: АЯ
(17.11.2010 в 12:14)
| | Не все в коде понятно.
А тот якобы гавнястый код, дали у Вас на форуме.
<script>
onload = function ()
{
with (document)
{
var h = [605,
getElementById ('box_content').offsetHeight,
getElementById ('sideLeft').offsetHeight,
getElementById ('sideRight').offsetHeight].sort ();
getElementById ('sideLeft').style.height =
getElementById ('sideRight').style.height =
getElementById ('box_content').style.height = h [3] + 'px';
}
}
</script>
|
Здесь не всё ясно просто, учитаны ли все условия.
Если контент по высоте > левлго и правого сайдбара
- if (content>ls) or (content>rs)
- if (content<ls) or (content<rs)
- if ((content<ls) and (content<rs)) and (rs>ls)
А то вот что получается,
http://cdnioo.ru/index.php?option=com_content&view=article&id=18&Itemid=40
Правый сайтбар залез на область футера. | |
|
|
|
|
|
|
|
для: pautina
(17.11.2010 в 12:23)
| | Замените на
.sort (new Function ('x', 'y', 'return x - y'));
|
И, наконец, мать-мать... здесь - РУССКИЙ форум.
Извольте писать ПО-РУССКИ!
А то, плять, то сайТбар, то сайДбар, то футер - хрен разберёшь.
И сами ни фига не понимаете - о чём пишете, и других путаете.
Есть слово контейнер (иначе - блок), который может быть левым, центральным, правым, нижним...
Усекли, "сайТбарная, она же сайДбарная, она же футерная паутина"? | |
|
|
|
|
|
|
|
для: АЯ
(17.11.2010 в 12:41)
| | На мой взгляд задача довольно интересная.
Может для Вас это и элементарно, мне Ваш скрипт не очень понятен.
Можете оказать помощь по моему скрипту
<script>
onload = function ()
{
var CONTENT = document.getElementById('box_content').offsetHeight;
var LS = document.getElementById('sideLeft').offsetHeight;
var RS = document.getElementById('sideRight').offsetHeight;
... наш код ...
}
</script>
|
Смотрите здесь есть 3 значения высоты
- высота левого сайдбара LS
- высота контента CONTENT
- высота правого сайдбара RS
Это переменые с любым числовым значением.
какой функцией сравнить в скрипте 3 этих величины и определить максимальное из них.? | |
|
|
|
|
|
|
|
для: pautina
(17.11.2010 в 19:27)
| | Вы с рождения такой - неспособный ни объяснить, ни понять?
Во-первых, величин у Вас не три, а четыре - Вы сами прописали минимально допустимое значение в 605 пикселей.
Во-вторых, алгоритмов нахождения "максимального из N чисел" существует несколько.
Я и ДАЛ вам самый простой из них - "все N чисел сначала сортируются по возрастанию, затем берётся самое последнее (сиречь - самое большое) из них".
Что, блин, Вам ЕЩЁ непонятно, сайДбарный Вы наш? | |
|
|
|
|
|
|
|
для: АЯ
(17.11.2010 в 21:17)
| | Да крутой участок кода, что и говорить.
Спасибо за помощь. Я немного попроще сделал.
А какую книгу или ссылки бы по JS Вы посоветовали. | |
|
|
|