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

Чудеса математики js при padding
привет, есть код выдвижной менюшки.

<div><a href="javascript:col()" id="tit">Скрыть</a></div>

<div id="div" style="margin: 0px 15px">
   много текста
</div>


<script type="text/javascript">
  var div = document.getElementById("div");
       
function col(){
    if (div.clientHeight >= step){
        div.style.height = div.clientHeight-1;
        setTimeout("col()",10);
    }
} 
</script>


всё это дело отлично медленно скрывается всё ок.
но как только добавляю параметр padding
<div id="div" style="margin: 0px 15px; padding: 3px">
при нажатии на кнопку, вся менюшка начинает бесконечно открываться вниз Оо, что за чудеса?
вставил алерт
function col(){
    var step = 1;
    [B]alert(div.clientHeight);[/B]
    if (div.clientHeight >= step){
        div.style.height = div.clientHeight-2;
        setTimeout("col()",10);

и выяснил что математичка "-" не работает, выводит 88,90,92,94....
что за бредятина. Повторяю что при удалении padding всё идеально работает.

дефолт

при нажатии (в действии) постепенно скрывается всё ок

вот применяю паддинг, как видно паддинг применяться

и вот баг, при нажатии пошло бесконечное увеличение (в действии)

Последний раз редактировалось borovik, 09.07.2011 в 19:37.
Ответить с цитированием