Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Синтаксис скрипта высота сайтбара по высоте контента
 
 автор: pautina   (16.11.2010 в 20:57)   письмо автору
 
 

Здравствуйте Уважаемое сообщество.
Пишу 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 то скрипт выполняется.

  Ответить  
 
 автор: deimand   (17.11.2010 в 01:09)   письмо автору
 
   для: pautina   (16.11.2010 в 20:57)
 

function ge(id)
{
return document.getElementById(id);
}

  Ответить  
 
 автор: АЯ   (17.11.2010 в 09:19)   письмо автору
 
   для: 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"> - тот дурак.
Кто не спрятался, я не виноват!

  Ответить  
 
 автор: elenaki   (17.11.2010 в 09:59)   письмо автору
 
   для: АЯ   (17.11.2010 в 09:19)
 

Тот, кто напишет <script type="text/javascript"> - тот дурак.
================================================
скажите это валидатору

  Ответить  
 
 автор: pautina   (17.11.2010 в 10:40)   письмо автору
 
   для: 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> 

Где в этом скрипте может быть ошибка.
Скрипт не выполняется.

  Ответить  
 
 автор: АЯ   (17.11.2010 в 11:15)   письмо автору
 
   для: elenaki   (17.11.2010 в 09:59)
 

Говорю: "Валидатор - дурак!" :-)

  Ответить  
 
 автор: pautina   (17.11.2010 в 11:42)   письмо автору
 
   для: АЯ   (17.11.2010 в 11:15)
 

Хорошо type="text/javascript" уберу.
Ошибки валидности всё равно возникают, имена переменных нужно писать с маленькой буквы?
Или в чём то ещё могут быть ошибки по валидности?

  Ответить  
 
 автор: АЯ   (17.11.2010 в 12:14)   письмо автору
 
   для: pautina   (17.11.2010 в 11:42)
 

Вы определитесь, наконец-то...
Вам чего НАДО, мать-мать-мать-перемать?

1. Чтобы работало? Так я Вам дал работающий вариант.

2. Чтобы работал бред, написанный вами? Почему у Вас такое извращённое желание - чтобы работало всякое ГОВНО, Вами из Вашей головы испражнённое?

3. Чтобы работало, да ещё было и валидно? "Ошибок валидности" не существует! Это придурками придумано. Зарубите себе это на носу! Нормальному человеку "насрать и розами засыпать" на то, что какой-то неизвестный хрен с горы выдаёт в качестве рекомендаций по валидности. Понятно? Для нормального человека главное - чтобы работало. Чётко, уверенно и везде.

  Ответить  
 
 автор: pautina   (17.11.2010 в 12:23)   письмо автору
 
   для: АЯ   (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
Правый сайтбар залез на область футера.

  Ответить  
 
 автор: АЯ   (17.11.2010 в 12:41)   письмо автору
 
   для: pautina   (17.11.2010 в 12:23)
 

Замените
.sort ();
на
.sort (new Function ('x', 'y', 'return x - y')); 

И, наконец, мать-мать... здесь - РУССКИЙ форум.

Извольте писать ПО-РУССКИ!

А то, плять, то сайТбар, то сайДбар, то футер - хрен разберёшь.
И сами ни фига не понимаете - о чём пишете, и других путаете.

Есть слово контейнер (иначе - блок), который может быть левым, центральным, правым, нижним...
Усекли, "сайТбарная, она же сайДбарная, она же футерная паутина"?

  Ответить  
 
 автор: pautina   (17.11.2010 в 19:27)   письмо автору
 
   для: АЯ   (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 этих величины и определить максимальное из них.?

  Ответить  
 
 автор: АЯ   (17.11.2010 в 21:17)   письмо автору
 
   для: pautina   (17.11.2010 в 19:27)
 

Вы с рождения такой - неспособный ни объяснить, ни понять?

Во-первых, величин у Вас не три, а четыре - Вы сами прописали минимально допустимое значение в 605 пикселей.

Во-вторых, алгоритмов нахождения "максимального из N чисел" существует несколько.
Я и ДАЛ вам самый простой из них - "все N чисел сначала сортируются по возрастанию, затем берётся самое последнее (сиречь - самое большое) из них".

Что, блин, Вам ЕЩЁ непонятно, сайДбарный Вы наш?

  Ответить  
 
 автор: pautina   (18.11.2010 в 12:13)   письмо автору
 
   для: АЯ   (17.11.2010 в 21:17)
 

Да крутой участок кода, что и говорить.
Спасибо за помощь. Я немного попроще сделал.
А какую книгу или ссылки бы по JS Вы посоветовали.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования