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

Анимированое меню. Проблема
Вот код:
// Change text position of menu bar

with ( textMoveRevers = new Function ) {
    prototype.add = 5;
    
    prototype.padStartLtoR = 0;
    prototype.widthStartToR = 202;
    
    prototype.padStartRtoL = 61;
    prototype.widthStartToL = 141;
    
    prototype.getElement = function() {
        for ( this.n = 1; this.n < 6; this.n ++ ) {
            this.elemId = "navRow" + this.n;
            this.elem = document.getElementById(this.elemId);
            
            with (this.elem) {
                setAttribute("onmouseover", "actionMenu.moveRight(this)");
                setAttribute("onmouseout", "actionMenu.moveLeft(this)");
            }
        }
    }
    
    prototype.moveRight = function( elem ) {
        this.row = document.getElementById(elem.id);
        if ( this.row.className != "menu_active_row" ) {
            this.moveRightStart(1);
        }
    }
    
    prototype.moveRightStart = function( count ) {
        this.counter = count;
        if ( this.counter < 60 ) {
            with ( this.row.style ) {
                paddingLeft = (this.padStartLtoR + this.counter);
                width = (this.widthStartToR - this.counter);
            }
            setTimeout("actionMenu.moveRightStart(" + (this.counter + this.add) + ")", 1);
        }
    }
    
    prototype.moveLeft = function( elem ) {
        this.row = document.getElementById(elem.id);
        if ( this.row.className != "menu_active_row" ) {
            this.moveLeftStart(1);
        }
    }
    
    prototype.moveLeftStart = function( count ) {
        this.counter = count;
        if ( this.counter < 60 ) {
            with ( this.row.style ) {
                paddingLeft = (this.padStartRtoL - this.counter);
                width = (this.widthStartToL + this.counter);
            }
            setTimeout("actionMenu.moveLeftStart(" + (this.counter + this.add) + ")", 1);
        }
    }
}

actionMenu = new textMoveRevers;

window.onload = actionMenu.getElement; // Определяет обработчики события для правого меню

Вот сайт: http://greenl.info
Левая панель навигации работает не так как надо. Как я понял - при скором наведении курсора на элемент, объекту передается именно этот элемент, и получается так что ранее активный элемент замирает "не доехав" до конца.
Как решить проблему? Заранее благодарен
Ответить с цитированием