Показать сообщение отдельно
  #4 (permalink)  
Старый 08.12.2013, 15:08
Новичок на форуме
Отправить личное сообщение для JuliusCaesar Посмотреть профиль Найти все сообщения от JuliusCaesar
 
Регистрация: 08.12.2013
Сообщений: 3

понял про лаг, это не из-за скорости, переделал:

jQuery.fn.initMenu = function() {  
    return this.each(function(){
        var theMenu = $(this).get(0);
        $('.acitem', this).hide();
        $('li.expand > .acitem', this).show();
        $('li.expand > .acitem', this).prev().children().first().rotate({animateTo:90});                   
        $('li.expand > .acitem', this).prev().addClass('active');
        $('li a', this).click(
            function(e) {
                e.stopImmediatePropagation();
                var theElement = $(this).next();
                var parent = this.parentNode.parentNode;
                if($(parent).hasClass('noaccordion')) {
                    if(theElement[0] === undefined) {
                        window.location.href = this.href;
                    }
                    $(theElement).slideToggle('normal', function() {
                        if ($(this).is(':visible')) {
                            $(this).prev().addClass('active');
                        }
                        else {
                            $(this).prev().removeClass('active');
                        }    
                    });
                  return false;
                }
                else {
                    if(theElement.hasClass('acitem') && theElement.is(':visible')) {
                        $(theElement).prev().children().first().rotate({animateTo:0});
                        if($(parent).hasClass('collapsible')) {
                            $('.acitem:visible', parent).first().slideUp('normal', 
                            function() {
                                $(this).prev().removeClass('active');
                            }
                        )
                        return false;  
                        }
                    return false;                   
                } 
                if(theElement.hasClass('acitem') && !theElement.is(':visible')) {         
                   $(theElement).prev().children().first().rotate({animateTo:90});                        
                   $('.acitem:visible', parent).first().prev().children().first().rotate({animateTo:0});
                   $('.acitem:visible', parent).first().slideUp('normal', function() {
                    	    $(this).prev().removeClass('active');
                    });                    
                    theElement.slideDown('normal', function() {
                        $(this).prev().addClass('active');
                    });
                    return false;
                }
            }
        }
    );
});
};


но если надо ускорить анимацию поворота, то удобнее всего в файле jQueryRotate.js поменять выставленное значение по умолчанию на свое в этой строке:
this._parameters.duration = parameters.duration || this._parameters.duration || 1000;
Поставь например 200 вместо 1000))

А если хочешь, чтобы вкладки быстрее сворачивались и открывались, меняй в menu.js везде
slideUp('normal'...
на
slideUp('fast'...
Ответить с цитированием