Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #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
Левая панель навигации работает не так как надо. Как я понял - при скором наведении курсора на элемент, объекту передается именно этот элемент, и получается так что ранее активный элемент замирает "не доехав" до конца.
Как решить проблему? Заранее благодарен
Ответить с цитированием
  #2 (permalink)  
Старый 30.11.2010, 08:05
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

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

Критика не уместна. Но все же... кроссбраузерность не так интересна, как js, поэтому проблемы в соответствующем приоритете. Сайт неработоспособен в ИЕ, спору нет, но просьбы о помощи в коде это не отменяло.
Ответить с цитированием
  #4 (permalink)  
Старый 30.11.2010, 10:35
Аватар для Snipe
Профессор
Отправить личное сообщение для Snipe Посмотреть профиль Найти все сообщения от Snipe
 
Регистрация: 06.05.2008
Сообщений: 765

Что-то мне сложно вчитаться. У вас один объект на разные кнопки?
А зачем тогда прототипы? Если у вас один объект.

Если бы на каждую кнопку по объекту - тогда бы я понял такие ухищрения.
Это как бы совет и есть. Делайте на каждую кнопку отдельный объект. Все эти объекты могут наследоваться от общего. Тогда и прототипы будут уместны.
Ответить с цитированием
  #5 (permalink)  
Старый 12.12.2010, 16:38
Интересующийся
Отправить личное сообщение для Maximor17 Посмотреть профиль Найти все сообщения от Maximor17
 
Регистрация: 04.11.2010
Сообщений: 10

Спасибо. Так и сделал
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа Sothink DHTML. Проблема с выпадающем меню в Opere и Мозила. wertor Javascript под браузер 1 27.01.2010 17:19
Проблема с меню для кнопки в Гриде progi2007 ExtJS 0 03.08.2009 14:16
Проблема с меню не корректно отображается в браузерах отличных от IE (т.е. FF Opera) 3xv Элементы интерфейса 2 16.04.2009 19:51
Проблема с меню в ИЕ Vegas Internet Explorer 0 05.04.2009 19:11
Проблема с меню 856 Общие вопросы Javascript 3 28.07.2008 14:29