Одновременная CSS анимация и спиновый переход

<style> 
div
{
width:50px;
height:100px;
background:red;
position:relative;
animation:myfirst 5s infinite alternate;
-webkit-animation:myfirst 5s infinite alternate;
}

@keyframes myfirst
{
0%   { left:0px; top:0px;}
25%  { left:200px; top:0px;}
50%  { left:200px; top:200px;}
75%  { left:0px; top:200px;}
100% { left:0px; top:0px;}
}


@-webkit-keyframes myfirst 
{
0%   { left:0px; top:0px;}
25%  { left:200px; top:0px;}
50%  { left:200px; top:200px;}
75%  { left:0px; top:200px;}
100% { left:0px; top:0px;}
}


</style>


<body>

<div></div>

</body>

Можно ли добавить какой-нибудь поворотный переход к этому? Я попытался добавить код в объявление div и создать другой селектор, но ни один из них не работал.

1 ответ

Решение

Вы должны добавить и определить другую анимацию, возможно, так:

@keyframes rotate
{
from {
        transform: rotate(0deg);
    }
to { 
        transform: rotate(360deg);
    }
}

А затем добавьте анимацию к вашему элементу, разделяя его запятой:

animation:myfirst 5s infinite alternate, rotate 2.5s linear infinite;

В этом примере обратите внимание на следующие вещи:

  1. 2.5s Я выбрал это, чтобы сделать два полных поворота за один раз вашей первой анимации, я думал, что это выглядело более плавно.

  2. linear дает вам ощущение бесконечного вращения в пустоте. Попробуйте другие функции, если вы не хотите этот эффект.

  3. Я не ставил alternate потому что мы хотим, чтобы элемент вращался непрерывно.

демонстрация

Другие вопросы по тегам