Анимация в CSS3
В данной статье мы рассмотрим пример использования анимации в CSS3. Приятно осознавать тот факт, что в скором будущем все браузеры без исключения будут поддерживать CSS3.
Синтаксис
animation: name duration timing-function delay iteration-count direction;
Значение | Описание |
---|---|
animation-name | Определяет имя ключевого кадра, который вы хотите привязать к селектору |
animation-duration | Продолжительность анимации в секундах или миллисекундах |
animation-timing-function | Скорость кривой анимации |
animation-delay | Задержка перед началом анимации |
animation-iteration-count | Определяет какое кол-во раз должна проигрываться анимация |
animation-direction | Определяет должна ли анимация проигрываться в обратном направлении |
Пример использования css3 animation
Заставим наш блок пульсировать
@keyframes resize { 0% { border-radius: 10px; } 50% { width:150px; height: 150px; border-radius: 100px; background-color:rgba(255,0,0,0.2); } 100% { border-radius: 10px; background-color:rgba(255,0,0,0.9); } }
В начале мы должны описать имя анимации (animation-name) используя для этого CSS3 правило @keyframes. В нашем примере @keyframes состоит из трех частей, но ограничений по количеству @keyframes и частей - нет.
#box { margin: 100px auto; width: 100px; height: 100px; background: #333; } #box:hover{ animation-name: resize; animation-duration: 3s; animation-iteration-count: 4; animation-direction: alternate; animation-timing-function: ease-in-out; }
Из кода выше видно, что для #box мы задали начальные свойства, в @keyframes мы задаем свойства блока на каждой части анимации, для #box:hover - задаем непосредственно параметры анимации.
Наведите курсором мыши:
На самом деле код для данного примера немного больше т.к. необходимо учитывать прихоти каждого браузера, в результате получаем:
@keyframes resize { 0% { border-radius: 10px; } 50% { width:150px; height: 150px; border-radius: 100px; background-color:rgba(255,0,0,0.2); } 100% { border-radius: 10px; background-color:rgba(255,0,0,0.9); } } @-moz-keyframes resize { 0% { border-radius: 10px; } 50% { width:150px; height: 150px; border-radius: 100px; background-color:rgba(255,0,0,0.2); } 100% { border-radius: 10px; background-color:rgba(255,0,0,0.9); } } @-webkit-keyframes resize { 0% { border-radius: 10px; } 50% { width:150px; height: 150px; border-radius: 100px; background-color:rgba(255,0,0,0.2); } 100% { border-radius: 10px; background-color:rgba(255,0,0,0.9); } } @-ms-keyframes resize { 0% { border-radius: 10px; } 50% { width:150px; height: 150px; border-radius: 100px; background-color:rgba(255,0,0,0.2); } 100% { border-radius: 10px; background-color:rgba(255,0,0,0.9); } } @-o-keyframes resize { 0% { border-radius: 10px; } 50% { width:150px; height: 150px; border-radius: 100px; background-color:rgba(255,0,0,0.2); } 100% { border-radius: 10px; background-color:rgba(255,0,0,0.9); } } #box { margin: 100px auto; width: 100px; height: 100px; background: #333; } #box:hover{ -webkit-animation-name: resize; -moz-animation-name: resize; -ms-animation-name: resize; -o-animation-name: resize; animation-name: resize; -webkit-animation-duration: 3s; -moz-animation-duration: 3s; -ms-animation-duration: 3s; -o-animation-duration: 3s; animation-duration: 3s; -webkit-animation-iteration-count: 4; -moz-animation-iteration-count: 4; -ms-animation-iteration-count: 4; -o-animation-iteration-count: 4; animation-iteration-count: 4; -webkit-animation-direction: alternate; -moz-animation-direction: alternate; -ms-animation-direction: alternate; -o-animation-direction: alternate; animation-direction: alternate; -webkit-animation-timing-function: ease-in-out; -moz-animation-timing-function: ease-in-out; -ms-animation-timing-function: ease-in-out; -o-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; }
Еще пример применения CSS3 animation
В этом примере animation-iteration-count: infinite; - это означает что наша анимация будет повторяться вечно 🙂
CSS код примера
@-webkit-keyframes glow { 0% { -webkit-box-shadow: 0 0 16px rgba(66, 140, 240, 0.5); border-color: rgba(0,0,255,0.5); } 100% { -webkit-box-shadow: 0 0 16px rgba(66, 140, 240, 1.0), 0 0 36px rgba(0, 140, 255, 1.0); border-color: rgba(0,0,255,1.0); } } @-moz-keyframes glow { 0% { -moz-box-shadow: 0 0 16px rgba(66, 140, 240, 0.5); border-color: rgba(0,0,255,0.5); } 100% { -moz-box-shadow: 0 0 16px rgba(66, 140, 240, 1.0), 0 0 36px rgba(0, 140, 255, 1.0); border-color: rgba(0,0,255,1.0); } } @-o-keyframes glow { 0% { box-shadow: 0 0 16px rgba(66, 140, 240, 0.5); border-color: rgba(0,0,255,0.5); } 100% { box-shadow: 0 0 16px rgba(66, 140, 240, 1.0), 0 0 36px rgba(0, 140, 255, 1.0); border-color: rgba(0,0,255,1.0); } } @keyframes glow { 0% { box-shadow: 0 0 16px rgba(66, 140, 240, 0.5); border-color: rgba(0,0,255,0.5); } 100% { box-shadow: 0 0 16px rgba(66, 140, 240, 1.0), 0 0 36px rgba(0, 140, 255, 1.0); border-color: rgba(0,0,255,1.0); } } #box { width:255px; margin:10px auto; } #box button { width: 255px; height: 35px; background: #cde; border: 2px solid #ccc; border-color: rgba(0,0,255,0.5); font-size:18px; color: #000; text-shadow: rgba(20, 20, 20, 0.5) 1px 1px 5px; text-align: center; -webkit-border-radius: 16px; -moz-border-radius: 16px; border-radius: 16px; -webkit-box-shadow: 0 0 16px rgba(66, 140, 240, 0.5); box-shadow: 0 0 16px rgba(66, 140, 240, 0.5); } #box button:hover { background-color:#cce; -webkit-animation-name: glow; -webkit-animation-duration: 1s; -webkit-animation-iteration-count: infinite; -webkit-animation-direction: alternate; -webkit-animation-timing-function: ease-in-out; -moz-animation-name: glow; -moz-animation-duration: 1s; -moz-animation-iteration-count: infinite; -moz-animation-direction: alternate; -moz-animation-timing-function: ease-in-out; -o-animation-name: glow; -o-animation-duration: 1s; -o-animation-iteration-count: infinite; -o-animation-direction: alternate; -o-animation-timing-function: ease-in-out; animation-name: glow; animation-duration: 1s; animation-iteration-count: infinite; animation-direction: alternate; animation-timing-function: ease-in-out; }}
Рубрика: CSS
Здравствуйте. У вас на странице что-то с примерами. При наведении на “наведите курсором мыши” ничего не происходит. Если можно, поправьте. А вообще, мне нравиться как у вас последние статьи организованы (кнопка Demo).
Здравствуйте! Спасибо, что сообщили об ошибке. Отключил один плагин, т.к. не мог вспомнить зачем он мне нужен, теперь вспомнил 🙂