Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.11.2012, 15:42
Новичок на форуме
Отправить личное сообщение для Lasana Посмотреть профиль Найти все сообщения от Lasana
 
Регистрация: 14.11.2012
Сообщений: 1

Проблема с ClientHeight
Привет!
Такая проблема:
Не могу понять почему неправильно вычисляется размер колонки через ClientHeight, причём во всех браузерах неправильно! Скорей всего либо я чего-то совсем не понимаю, либо глюк вовсе не там, где я его ищу.
Итак.
На сайте есть две колонки, содержание которых наполняется динамически (левая - меню leftmenu, правая - текст mtext). Между ними есть третья колонка, которая по высоте ровняется на большую из этих двух (там "кубики" и их должно быть целое число, поэтому высота этой колонки подгоняется под высоту большей из колонок)

function make_height()  {              
     var text=document.getElementById('mtext');
     var left=document.getElementById('leftmenu');
     if (text.clientHeight>left.clientHeight)   
      { var h=text.clientHeight;        
          }
         else                         
          { var h=left.offsetHeight;
             }                         
     var ost=h%113;                                
     if (ost>0)                                      
     h=(1+(h-ost)/113)*113;                            
     var zen=document.getElementById('zen');             
     zen.height=h+9;                                       
       }


В левой колонке - разворачивающееся меню.
Организовано оно так: пункты подменю спрятаны style="display:none;", при клике на раскрываемом пункте меню их стиль меняется на display:block; При повторном клике - обратно.. Ну, то есть, классика:

function Menu(id)                                        
    { var menu=document.getElementsByName('menu_'+id);    
      var src=document.getElementById(id);
      for (var i=0; i<menu.length; i++)
        {
           if (menu[i].style.display=='none')                              
           { menu[i].style.display='block';
             src.src='tri.gif';                             
        	}                                               
           else                                             
           { menu[i].style.display='none';                  
             src.src='irt.gif';                             
        	}                                               
    	}


Ну понятно: раз кликаешь - меню вываливается, два кликаешь - собирается обратно.
Хочу ж я после этого чтобы ширина средней колонки тоже подгонялась: и когда меню свёрнуто, и когда развёрнуто.
Вставляю в самый конец второй функции вызов первой: make_height();
Теперь, ВНИМАНИЕ!
Когда меню разворачивается, высота левой колонки становится БОЛЬШЕ, высота средней колонки увеличивается на некую высоту H (ну, типа новая высота = старая высота+H).

А когда меню сворачивается, средняя колонка НЕ УМЕНЬШАЕТСЯ, а наоборот увеличивается. Т.е. её размер становится не новая высота=старая высота-H, а опять новая высота = старая высота+H

А надо, чтобы уменьшалась.

В чём глюк?
Изображения:
Тип файла: jpg pic1.jpg (40.3 Кб, 1 просмотров)
Тип файла: jpg pic2.jpg (42.9 Кб, 1 просмотров)
Тип файла: jpg pic3.jpg (39.8 Кб, 1 просмотров)
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с обработкой ескольких .hover() anocean jQuery 3 15.06.2012 22:43
Проблема с Popup окном vovuslik jQuery 5 12.06.2010 16:12
Проблема с дизайном после отправки xmlhttprequest, Проблема с дизайном после отправки cyberx AJAX и COMET 3 01.05.2010 17:07
Проблема с CSS COKOJIOB (X)HTML/CSS 5 04.08.2009 14:19
Проблема, в менюшке Большой джо Элементы интерфейса 0 12.07.2009 17:12