CSS анимация блоков (10 вариантов)

Доброго времени суток, друзья. Сегодня поколдуем с эффектами анимации на CSS ,без  подключения сторонних скриптов и библиотек jQuery. У меня был уже вариант создания анимации картинки.

Так же будем использовать стили для анимации и свойства transition, opacity и scale.

анимация CSS

Каждый из предложенных вариантов , а их сегодня не мало, можно просмотреть в этом редакторе. Скопируйте код каждого и установите в поле редактора для просмотра.

Каждому блоку мы присвоим  id и class. Причем, id можете ставить какой хотите, а class - это и будет нужный эффект. В общем, как обычно. Создаём блок div и для каждого отдельного свои свойства. У меня для примера в блоке div картинка . Но вы можете вставить любой текст, код.

<div id="anim_block" class="slideRight">здесь можно вставить всё что угодно - текст код картинку </div>

Давайте смотреть уже.

1. Анимация в правую сторону 


<div id="anim_block" class="slideRight"><img alt="" height="200" src="https://avatars.mds.yandex.net/get-pdb/901820/7909be1b-5b7d-4bfa-800c-19853f1c0781/s1200" width="400" /> </div>

<style>
#anim_block{position:absolute;width:250рх;top:95px;lleft:0;}
.slideRight{
    animation-name: slideRight;
    -webkit-animation-name: slideRight;

    animation-duration: 2s;
    -webkit-animation-duration: 2s;

    animation-timing-function: ease-in-out;
    -webkit-animation-timing-function: ease-in-out;   

    visibility: visible !important;
}

@keyframes slideRight {
    0% {
        transform: translateX(-150%);
    }
    50%{
        transform: translateX(8%);
    }
    65%{
        transform: translateX(-4%);
    }
    80%{
        transform: translateX(4%);
    }
    95%{
        transform: translateX(-2%);
    }         
    100% {
        transform: translateX(0%);
    } 
}

@-webkit-keyframes slideRight {
    0% {
        -webkit-transform: translateX(-150%);
    }
    50%{
        -webkit-transform: translateX(8%);
    }
    65%{
        -webkit-transform: translateX(-4%);
    }
    80%{
        -webkit-transform: translateX(4%);
    }
    95%{
        -webkit-transform: translateX(-2%);
    }         
    100% {
        -webkit-transform: translateX(0%);
    }
}
</style>


2. Анимация в левую сторону сторону. Изменяем класс в первом коде на "slideLeft"

<div id="anim_block" class="slideLeft"><img alt="" height="200" src="https://avatars.mds.yandex.net/get-pdb/901820/7909be1b-5b7d-4bfa-800c-19853f1c0781/s1200" width="400" /> </div>

<style>
.slideLeft{
    animation-name: slideLeft;
    -webkit-animation-name: slideLeft;

    animation-duration: 2s;
    -webkit-animation-duration: 2s;

    animation-timing-function: ease-in-out;
    -webkit-animation-timing-function: ease-in-out;   

    visibility: visible !important;
}

@keyframes slideLeft {
    0% {
        transform: translateX(150%);
    }
    50%{
        transform: translateX(-8%);
    }
    65%{
        transform: translateX(4%);
    }
    80%{
        transform: translateX(-4%);
    }
    95%{
        transform: translateX(2%);
    }         
    100% {
        transform: translateX(0%);
    }
}

@-webkit-keyframes slideLeft {
    0% {
        -webkit-transform: translateX(150%);
    }
    50%{
        -webkit-transform: translateX(-8%);
    }
    65%{
        -webkit-transform: translateX(4%);
    }
    80%{
        -webkit-transform: translateX(-4%);
    }
    95%{
        -webkit-transform: translateX(2%);
    }         
    100% {
        -webkit-transform: translateX(0%);
    }
}
</style>


3. Блок див выпадает сверху. Так же меняем класс ID на slideDown

 <div id="anim_block" class="slideDown"><img alt="" height="200" src="https://avatars.mds.yandex.net/get-pdb/901820/7909be1b-5b7d-4bfa-800c-19853f1c0781/s1200" width="400" /> </div>
<style>
.slideDown{
    animation-name: slideDown;
    -webkit-animation-name: slideDown;

    animation-duration: 1s;
    -webkit-animation-duration: 1s;

    animation-timing-function: ease; 
    -webkit-animation-timing-function: ease; 

    visibility: visible !important;                   
}

@keyframes slideDown {
    0% {
        transform: translateY(-100%);
    }
    50%{
        transform: translateY(8%);
    }
    65%{
        transform: translateY(-4%);
    }
    80%{
        transform: translateY(4%);
    }
    95%{
        transform: translateY(-2%);
    }         
    100% {
        transform: translateY(0%);
    }     
}

@-webkit-keyframes slideDown {
    0% {
        -webkit-transform: translateY(-100%);
    }
    50%{
        -webkit-transform: translateY(8%);
    }
    65%{
        -webkit-transform: translateY(-4%);
    }
    80%{
        -webkit-transform: translateY(4%);
    }
    95%{
        -webkit-transform: translateY(-2%);
    }         
    100% {
        -webkit-transform: translateY(0%);
    } 
}
</style>


4. Движение блока вверх slideUp

<div id="anim_block" class="slideUp"><img alt="" height="200" src="https://avatars.mds.yandex.net/get-pdb/901820/7909be1b-5b7d-4bfa-800c-19853f1c0781/s1200" width="400" /> </div>
<style>
.slideUp{
    animation-name: slideUp;
    -webkit-animation-name: slideUp; 

    animation-duration: 1s;
    -webkit-animation-duration: 1s;

    animation-timing-function: ease; 
    -webkit-animation-timing-function: ease;

    visibility: visible !important;       
}

@keyframes slideUp {
    0% {
        transform: translateY(100%);
    }
    50%{
        transform: translateY(-8%);
    }
    65%{
        transform: translateY(4%);
    }
    80%{
        transform: translateY(-4%);
    }
    95%{
        transform: translateY(2%);
    }         
    100% {
        transform: translateY(0%);
    } 
}

@-webkit-keyframes slideUp {
    0% {
        -webkit-transform: translateY(100%);
    }
    50%{
        -webkit-transform: translateY(-8%);
    }
    65%{
        -webkit-transform: translateY(4%);
    }
    80%{
        -webkit-transform: translateY(-4%);
    }
    95%{
        -webkit-transform: translateY(2%);
    }         
    100% {
        -webkit-transform: translateY(0%);
    } 
}
</style>


 Ну и ещё немного можно поиграться с кодами.

5. Анимация блока с появлением и с лёгким эффектом раскачивания 

<div id="anim_block" class="bigEntrance"><img alt="" height="200" src="https://avatars.mds.yandex.net/get-pdb/901820/7909be1b-5b7d-4bfa-800c-19853f1c0781/s1200" width="400" /> </div>
<style>
.bigEntrance{
    animation-name: bigEntrance;
    -webkit-animation-name: bigEntrance; 

    animation-duration: 2s;
    -webkit-animation-duration: 2s;

    animation-timing-function: ease-out; 
    -webkit-animation-timing-function: ease-out; 

    visibility: visible !important;       
}

@keyframes bigEntrance {
    0% {
        transform: scale(0.3) rotate(6deg) translateX(-30%) translateY(30%);
        opacity: 0.2;
    }
    30% {
        transform: scale(1.03) rotate(-2deg) translateX(2%) translateY(-2%);     
        opacity: 1;
    }
    45% {
        transform: scale(0.98) rotate(1deg) translateX(0%) translateY(0%);
        opacity: 1;
    }
    60% {
        transform: scale(1.01) rotate(-1deg) translateX(0%) translateY(0%);   
        opacity: 1;
    } 
    75% {
        transform: scale(0.99) rotate(1deg) translateX(0%) translateY(0%);
        opacity: 1;
    }
    90% {
        transform: scale(1.01) rotate(0deg) translateX(0%) translateY(0%);   
        opacity: 1;
    } 
    100% {
        transform: scale(1) rotate(0deg) translateX(0%) translateY(0%);
        opacity: 1;
    }     
}

@-webkit-keyframes bigEntrance {
    0% {
        -webkit-transform: scale(0.3) rotate(6deg) translateX(-30%) translateY(30%);
        opacity: 0.2;
    }
    30% {
        -webkit-transform: scale(1.03) rotate(-2deg) translateX(2%) translateY(-2%);     
        opacity: 1;
    }
    45% {
        -webkit-transform: scale(0.98) rotate(1deg) translateX(0%) translateY(0%);
        opacity: 1;
    }
    60% {
        -webkit-transform: scale(1.01) rotate(-1deg) translateX(0%) translateY(0%);   
        opacity: 1;
    } 
    75% {
        -webkit-transform: scale(0.99) rotate(1deg) translateX(0%) translateY(0%);
        opacity: 1;
    }
    90% {
        -webkit-transform: scale(1.01) rotate(0deg) translateX(0%) translateY(0%);   
        opacity: 1;
    } 
    100% {
        -webkit-transform: scale(1) rotate(0deg) translateX(0%) translateY(0%);
        opacity: 1;
    }             
}
</style>


6. Блок тоже качается, но немного с другим эффектом

<div id="anim_block" class="hatch"><img alt="" height="200" src="https://avatars.mds.yandex.net/get-pdb/901820/7909be1b-5b7d-4bfa-800c-19853f1c0781/s1200" width="400" /> </div>
<style>
.hatch{
    animation-name: hatch;
    -webkit-animation-name: hatch;

    animation-duration: 2s;
    -webkit-animation-duration: 2s;

    animation-timing-function: ease-in-out;
    -webkit-animation-timing-function: ease-in-out;

    transform-origin: 50% 100%;
    -ms-transform-origin: 50% 100%;
    -webkit-transform-origin: 50% 100%;

    visibility: visible !important;   
}

@keyframes hatch {
    0% {
        transform: rotate(0deg) scaleY(0.6);
    }
    20% {
        transform: rotate(-2deg) scaleY(1.05);
    }
    35% {
        transform: rotate(2deg) scaleY(1);
    }
    50% {
        transform: rotate(-2deg);
    } 
    65% {
        transform: rotate(1deg);
    } 
    80% {
        transform: rotate(-1deg);
    }     
    100% {
        transform: rotate(0deg);
    }                                 
}

@-webkit-keyframes hatch {
    0% {
        -webkit-transform: rotate(0deg) scaleY(0.6);
    }
    20% {
        -webkit-transform: rotate(-2deg) scaleY(1.05);
    }
    35% {
        -webkit-transform: rotate(2deg) scaleY(1);
    }
    50% {
        -webkit-transform: rotate(-2deg);
    } 
    65% {
        -webkit-transform: rotate(1deg);
    } 
    80% {
        -webkit-transform: rotate(-1deg);
    }     
    100% {
        -webkit-transform: rotate(0deg);
    }     
}
</style>


7. Тут прыжок вверх и падение

<div id="anim_block" class="bounce"><img alt="" height="200" src="https://avatars.mds.yandex.net/get-pdb/901820/7909be1b-5b7d-4bfa-800c-19853f1c0781/s1200" width="400" /> </div>
<style>
.bounce{
    animation-name: bounce;
    -webkit-animation-name: bounce;

    animation-duration: 1.6s; 
    -webkit-animation-duration: 1.6s;

    animation-timing-function: ease; 
    -webkit-animation-timing-function: ease; 
   
    transform-origin: 50% 100%;
    -ms-transform-origin: 50% 100%;
    -webkit-transform-origin: 50% 100%;   
}

@keyframes bounce {
    0% {
        transform: translateY(0%) scaleY(0.6);
    }
    60%{
        transform: translateY(-100%) scaleY(1.1);
    }
    70%{
        transform: translateY(0%) scaleY(0.95) scaleX(1.05);
    }
    80%{
        transform: translateY(0%) scaleY(1.05) scaleX(1);
    } 
    90%{
        transform: translateY(0%) scaleY(0.95) scaleX(1);
    }             
    100%{
        transform: translateY(0%) scaleY(1) scaleX(1);
    } 
}

@-webkit-keyframes bounce {
    0% {
        -webkit-transform: translateY(0%) scaleY(0.6);
    }
    60%{
        -webkit-transform: translateY(-100%) scaleY(1.1);
    }
    70%{
        -webkit-transform: translateY(0%) scaleY(0.95) scaleX(1.05);
    }
    80%{
        -webkit-transform: translateY(0%) scaleY(1.05) scaleX(1);
    } 
    90%{
        -webkit-transform: translateY(0%) scaleY(0.95) scaleX(1);
    }             
    100%{
        -webkit-transform: translateY(0%) scaleY(1) scaleX(1);
    }     
}
</style>


8. Блок качается непрерывно

<div id="anim_block" class="tossing"><img alt="" height="200" src="https://avatars.mds.yandex.net/get-pdb/901820/7909be1b-5b7d-4bfa-800c-19853f1c0781/s1200" width="400" /> </div>
<style>
.tossing{
    animation-name: tossing;
    -webkit-animation-name: tossing; 

    animation-duration: 2.5s; 
    -webkit-animation-duration: 2.5s;

    animation-iteration-count: infinite;
    -webkit-animation-iteration-count: infinite;
}

@keyframes tossing {
    0% {
        transform: rotate(-4deg); 
    }
    50% {
        transform: rotate(4deg);
    }
    100% {
        transform: rotate(-4deg); 
    }                     
}

@-webkit-keyframes tossing {
    0% {
        -webkit-transform: rotate(-4deg); 
    }
    50% {
        -webkit-transform: rotate(4deg);
    }
    100% {
        -webkit-transform: rotate(-4deg); 
    }             
}
</style>


9. Ещё один эффект появления блока

<div id="anim_block" class="pullUp"><img alt="" height="200" src="https://avatars.mds.yandex.net/get-pdb/901820/7909be1b-5b7d-4bfa-800c-19853f1c0781/s1200" width="400" /> </div>
<style>
.pullUp{
    animation-name: pullUp;
    -webkit-animation-name: pullUp;

    animation-duration: 3s;
    -webkit-animation-duration: 3s;

    animation-timing-function: ease-out; 
    -webkit-animation-timing-function: ease-out; 

    transform-origin: 50% 100%;
    -ms-transform-origin: 50% 100%;
    -webkit-transform-origin: 50% 100%;       
}

@keyframes pullUp {
    0% {
        transform: scaleY(0.1);
    }
    40% {
        transform: scaleY(1.02);
    }
    60% {
        transform: scaleY(0.98);
    }
    80% {
        transform: scaleY(1.01);
    }
    100% {
        transform: scaleY(0.98);
    }             
    80% {
        transform: scaleY(1.01);
    }
    100% {
        transform: scaleY(1);
    }                         
}

@-webkit-keyframes pullUp {
    0% {
        -webkit-transform: scaleY(0.1);
    }
    40% {
        -webkit-transform: scaleY(1.02);
    }
    60% {
        -webkit-transform: scaleY(0.98);
    }
    80% {
        -webkit-transform: scaleY(1.01);
    }
    100% {
        -webkit-transform: scaleY(0.98);
    }             
    80% {
        -webkit-transform: scaleY(1.01);
    }
    100% {
        -webkit-transform: scaleY(1);
    }     
}
</style>


10. Движение блока вверх с расширением до полного размера.

<div id="anim_block" class="slideExpandUp"><img alt="" height="200" src="https://avatars.mds.yandex.net/get-pdb/901820/7909be1b-5b7d-4bfa-800c-19853f1c0781/s1200" width="400" /> </div>
<style>
.slideExpandUp{
    animation-name: slideExpandUp;
    -webkit-animation-name: slideExpandUp;

    animation-duration: 3s;
    -webkit-animation-duration: 3s;

    animation-timing-function: ease-out; 
    -webkit-animation-timing-function: ease -out;

    visibility: visible !important;
}

@keyframes slideExpandUp {
    0% {
        transform: translateY(100%) scaleX(0.5);
    }
    30%{
        transform: translateY(-8%) scaleX(0.5);
    } 
    40%{
        transform: translateY(2%) scaleX(0.5);
    }
    50%{
        transform: translateY(0%) scaleX(1.1);
    }
    60%{
        transform: translateY(0%) scaleX(0.9);   
    }
    70% {
        transform: translateY(0%) scaleX(1.05);
    }         
    80%{
        transform: translateY(0%) scaleX(0.95);   
    }
    90% {
        transform: translateY(0%) scaleX(1.02);
    } 
    100%{
        transform: translateY(0%) scaleX(1);     
    }
}

@-webkit-keyframes slideExpandUp {
    0% {
        -webkit-transform: translateY(100%) scaleX(0.5);
    }
    30%{
        -webkit-transform: translateY(-8%) scaleX(0.5);
    } 
    40%{
        -webkit-transform: translateY(2%) scaleX(0.5);
    }
    50%{
        -webkit-transform: translateY(0%) scaleX(1.1);
    }
    60%{
        -webkit-transform: translateY(0%) scaleX(0.9);   
    }
    70% {
        -webkit-transform: translateY(0%) scaleX(1.05);
    }         
    80%{
        -webkit-transform: translateY(0%) scaleX(0.95);   
    }
    90% {
        -webkit-transform: translateY(0%) scaleX(1.02);
    } 
    100%{
        -webkit-transform: translateY(0%) scaleX(1);     
    }
}
</style>


Как вы обратили внимание, каждого варианта мы меняем класс на соответственный.  Я везде отметила розовым цветом.

При установке нужного варианта в сообщение или гаджет HTML/JavaScript нужно изменить индивидуально свойства расположения блока. У всех будет по разному. Я отметила в первом коде строку

#anim_block{position:absolute;width:250рх;top:95px;lleft:0;}

Советую прочитать эту статью. Или найти информацию в интернете, её достаточно много.  
Скорость анимации в каждом коде тоже настраиваемая такие параметры 2s; 4s; и так далее.

Вот такие варианты анимации появления элементов в блоге.

В последующих постах покажу ещё несколько решений.  Всем добра и до встречи. 

здесь можно оформить подписку на новые шпаргалки

Введите Ваш email


10 комментариев:

  1. Вика! Ты просто чудо! Я так давно это искала! Большущее спасибо!Сейчас винду переустановлю,и буду пробовать,покажу потом обязательно что получится.

    ОтветитьУдалить
    Ответы
    1. Infodar, тут ещё главное потом нужно изменить индивидуально свойства расположения блока. У всех будет по разному. Чуть позже что - то на эту тему ещё выложу. А тот Что ты показала на Блоггере не потянет. Там коды с джава и jQuery просто кошмар какой - то.

      Удалить
  2. Вика, привет, спасибо за твой труд!
    Я тебе в личку письмо писала - ты не получила или пока не до этого??

    ОтветитьУдалить
    Ответы
    1. Галюня, зашла сейчас, что - то нет. Может среди кучи писем случайно удалила. Если не трудно продублируйте его.

      Удалить
    2. Спасибо
      Ответила через "форму связи", отправила минуту назад

      Удалить
  3. да то,что я показала это просто чтоб ты видела примерно о каком я эффекте говорю,а так мне он и не нужен уже.То,что ты мне дала меня более чем устраивает.

    ОтветитьУдалить
  4. Галюня, удивительным образом письмо попало в спам. Ответила .

    ОтветитьУдалить
  5. Ну, это мне уж точно не по зубам (хотя пока что все свои)!

    ОтветитьУдалить
  6. Я вот поставила на пробу с разными эффектами,посмотреть какой как выглядит
    https://www.manyofis.site/

    ОтветитьУдалить

ВСЕГДА РАДА УСЛЫШАТЬ ВАШЕ МНЕНИЕ!
Ели у вас возникла необходимость опубликовать код в комментарии, то воспользуйтесь encoder HTML