Главная > Анимация, CSS/Style Sheets > Элемент оповещения на keyframe-анимации CSS3

Элемент оповещения на keyframe-анимации CSS3


27 июля 2012, 14:00. Разместил: Design FactoRy
Недавно мы работали над одним проектом, в котором нам нужно было как-то акцентировать внимание на важных оповещениях. В целом, каждый раз когда менялось оповещение, нужно было сопроводить это визуальным эффектом, чтобы привлечь внимание посетителя. Мы реализовали это с помощью пошаговой анимации на CSS3.

Элемент оповещения на keyframe-анимации CSS3

HTML

В данном примере мы воспользуемся структурой разметки из нашего выпадающего меню на CSS3.

<ul class="menu">
<li><a href="">Dashboard</a></li>
<li><a href="">Stats</a></li>
<li>
<a href="">
Todo list
<span class="bubble">9</span>
</a>
</li>
<li><a href="">Settings</a></li>
</ul>

Акцент будет на «span class="bubble"», который является облачком оповещения, которое нам нужно анимировать.

CSS

Класс .animating отображает CSS3-анимацию, которая использует кривую Безье.

.animating{
animation: animate 1s cubic-bezier(0,1,1,0);
}

@keyframes animate{
from {
transform: scale(1);
}
to {
transform: scale(1.7);
}
}

jQuery

Не так-то просто перезапустить анимацию, и Крис Койер написал отличную статью, посвященную этому.

Выбранный нами метод включает использование метода setTimeout() из javascript. Итак, каждый раз когда значение оповещения изменяется, класс .animating исключается по прошествии секунды (примерно столько длится анимация).

Вам не понадобится переменная counterValue. Здесь она используется лишь для того, чтобы иметь возможность повышать и понижать значение.

var counterValue = parseInt($('.bubble').html()); // Get the current bubble value

function removeAnimation(){
setTimeout(function() {
$('.bubble').removeClass('animating')
}, 1000);
}

$('#decrease').on('click',function(){
counterValue--; // decrement
$('.bubble').html(counterValue).addClass('animating'); // animate it
removeAnimation(); // remove CSS animating class
})

$('#increase').on('click',function(){
counterValue++; // increment
$('.bubble').html(counterValue).addClass('animating'); // animate it
removeAnimation(); // remove CSS animating class

* Посмотреть демо

Просто, но эффективно

Нам кажется, что наш сегодняшний пример очень практичный, и отлично отображает то, как можно использовать анимации из CSS3. У вас будет возможность поэкспериментировать со значения кривой Безье и добиться других отличных эффектов. Спасибо за чтение! Хотелось бы услышать ваше мнение.
Вернуться назад