2012-03-15 3 views
0

Для тех, у кого есть Battlefield 3, кто-то может объяснить мне, как воссоздать эффект, который заставляет «мерцать» логотип. Я знаю, что изображение имеет 3 состояния (мышь, наведение и мыши), но я понятия не имею, как сделать это мерцающим.Battlefield 3 logo effect

Эффект логотипа можно увидеть, войдя в битву BF3 и заложив логотип.

У кого-нибудь есть идеи?

+0

Какие библиотеки JQuery загружены на этой странице? Используйте FireBug, чтобы посмотреть (вкладка net), и он должен дать подсказку. –

+0

Использование Chrome Inspect Element (вкладка скриптов) кажется, что все это собственные библиотеки. – Albert

+0

Это событие mouseenter и спрайт - http://battlelog-cdn.battlefield.com/public/base/bf3/header-logo2.png?v=590 Просто выполните некоторые поисковые запросы по спрайтам и jQuery mouseenter, и вы можете легко сделать это. – Archer

ответ

2

Это событие, которое прилагается к изображению:

var $headerLogoBF3=$("a.base-header-logo-bf3"); 
$headerLogoBF3.pageBind("mouseover", function() { 
    try { 
    $(this).stop().animate({backgroundPosition:"0px -136px"},80, function() { 
     $(this).stop().animate({backgroundPosition:"0px -68px"}); 
    }); 
    } catch(e){} 
}); 
$headerLogoBF3.pageBind("mouseout",function({ 
    try{ 
    $(this).stop().animate({backgroundPosition:"0px 0px"},"slow"); 
    } catch(e){} 
}); 
+0

Удивительный! Как я не видел этого? Спасибо, миллион Сани! – Albert

1

Никакая магия здесь, она просто переключает изображение, когда вы наведите указатель мыши. Если вы проверите DOM при зависании логотипа, вы увидите, как фоновая позиция перескакивает с 0 0 на 0 ~ -100 пикселей и, наконец, на 0 ~ -50 пикселей, что с этим изображением http://battlelog-cdn.battlefield.com/public/base/bf3/header-logo2.png?v=590 делает его первым прыжком до последнего " мерцающий "один, затем средний.

Edit: Для достижения этой цели, что вам нужно сделать, это сказать что-то вроде:

$('#logo').hover(function() { 
    var logo = $(this); 

    logo.css('background-position', '0 -100px'); 

    setTimeout(function() { 
     logo.css('background-position', '0 -50px'); 
    }, 5); 
}, function() { 
    $(this).css('background-position', '0 0'); 
}); 

Edit2: Вы можете даже не нужен SetTimeout.

+0

Я это заметил. Я просто хочу знать, что они используют, чтобы создать эту паузу. – Albert

+0

См. Обновленный ответ. – powerbuoy

0

Вы фактически ответили на свой вопрос:

Изображение имеет мыши-аут, парить и мыши в изображение. Вероятно, наведение - это маленький gif, который заменяется изображением мыши, как только оно закончится. Ничего сложного и возможно возможно с чистым css!

Удачи.

Редактировать: Мой ответ был неправильным. Они используют одно изображение, над которым они перемещаются в зависимости от движения мыши. См. Ответ Powerbuoy для правильного объяснения.

+0

Но при наведении мыши пауза отсутствует, поэтому вы не увидите эффекта (так как изменение будет слишком быстрым). Я прав, или я чего-то не хватает? То, что я думаю, использует функцию setTimeout в javascript с интервалом 100 мс. Считаете ли вы, что это сработает? – Albert

+0

Ваша догадка неверна ... –

+0

Я действительно ошибался. По-видимому, они работают с одним изображением, где они просматривают разные части. У Powerbuoy есть изображение в его посте. – Rvervuurt