Анимация меню
Вложений: 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, время: 02:57. |