Анимация меню
Вложений: 1
Здравствуйте, в JQuery человек новый, только начинаю изучать. Взял код скрипта с примера и немного адаптировал, но он выполняется своеобразно, есть ряд вопросов и буду признателен за помощ.
Почему Логоип появляется только после выполнения анимации? после того как меню "выезжает" li должны выплыть снизу, почему этого не происходит? и почему во премя процеса анимации выезда меню оно немного смещается вверх? Заранее благодарен. $(function() { var $br_background = $('#br_background'), $br_loading = $br_background.find('.br_loading'), $br_content = $('#br_content'), $menu = $br_content.find('.br_menu'), $mainNav = $menu.find('ul:first'), $menuItems = $mainNav.children('li'), totalItems = $menuItems.length, $ItemImages = new Array(); $menuItems.each(function(i) { $ItemImages.push($(this).children('a:first').attr('href')); }); var Menu = (function(){ var init = function() { loadPage(); initWindowEvent(); }, loadPage = function() { $br_loading.show();//show loading status image //hide the loading status image $.when(slideOutMenu()).done(function(){ $.when(toggleMenuItems('up')).done(function(){ initEventsSubMenu(); }); }); $br_loading.hide(); }, slideOutMenu = function() { /* calculate new width for the menu */ var new_w = $('.page-wrapper').width(); var new_w1 = 0; return $.Deferred( function(dfd) { //slides out the menu $menu.stop() .animate({ width : new_w + 'px' }, 700, dfd.resolve); } ).promise(); }, /* shows / hides the menu items */ toggleMenuItems = function(dir) { return $.Deferred( function(dfd) { /* slides in / out the items. different animation time for each one. */ $menuItems.each(function(i) { var $el_title = $(this).children('a:first'), marginTop, opacity, easing; if(dir === 'up'){ marginTop = '0px'; opacity = 1; easing = 'easeOutBack'; } else if(dir === 'down'){ marginTop = '60px'; opacity = 0; easing = 'easeInBack'; } $el_title.stop() .animate({ marginTop : marginTop, opacity : opacity }, 200 + i * 200 , easing, function(){ if(i === totalItems - 1) dfd.resolve(); }); }); } ).promise(); }, initWindowEvent = function() { }, loadImages = function() { }; return { init : init }; })(); Menu.init(); }); |
spiros,
Цитата:
|
рони, внизу прикреплен архив со всем.
|
spiros,
увы неосилил ваш архив |
Очень нужна помошь!
|
Отвечаю на первый вопрос.
"Почему Логоип появляется только после выполнения анимации?" - Потому что он делает запрос на сервер для отображения шрифта <link href="http://fonts.googleapis.com/css?family=PT+Sans+Narrow:regular,bold" rel="stylesheet" type="text/css" /> <link href='http://fonts.googleapis.com/css?family=Dancing+Script' rel='stylesheet' type='text/css'> |
Возможно из-за подгрузки шрифта оно немного едет вверх, потом загружает шрифт и выравнивает, можно попробовать поставить высоту для хедера, тогда не должно ничего скакать.
Насчет списка не понял ничего. Я вижу просто список, а что с ним должно произойти и при каких действиях я так и не понял. Ты этот код откуда скачивал? Есть ссылка на работающий пример? |
|
с первым, действительно в шрифте проблема, спасибо.
|
Нужно полностью слить страницу?
Или только Меню, без изменения фона и без всплывающих окон при клике? |
Часовой пояс GMT +3, время: 14:46. |