Используйте clip-path
и CSS-анимацию.
Примечание : в Safari и других браузерах необходим префикс -webkit
Первый ключевой кадр имеет 4 точки в центре на оси X, нов их последнем (максимальном) месте на оси Y.Это позволяет нам анимировать только ось X.
Второй ключевой кадр перемещает 4 точки наружу в их максимальные позиции вдоль оси X, при этом часть Y остается неизменной.
Немного запутанноно смотри ниже:
.animation{
width: 100%;
text-align: center;
font-size: 50px;
padding: 25px;
background: black;
color: white;
animation: expand_center 5000ms;
animation-fill-mode: forwards;
}
@keyframes expand_center {
0% {
clip-path: polygon(50% 100%,50% 0,50% 0,50% 100%);
-webkit-clip-path: polygon(50% 100%,50% 0,50% 0,50% 100%);
}
100%{
clip-path: polygon(0 100%, 0 0, 100% 0, 100% 100%);
-webkit-clip-path: polygon(0 100%, 0 0, 100% 0, 100% 100%);
}
}
<div class="animation">
Testing
</div>
Благодарим @KendallFrey за идею пути клипа.