Вы можете рассмотреть использование левого (или правого), и вам не понадобятся сложные вычисления:
#courseIcon {
position: absolute;
background: url(https://placehold.it/100x100) center/contain no-repeat;
width: 100px;
height: 100px;
top: calc(50% - 50px);
left: calc(50% - 50px);
}
/* ICON TRANSITION */
.moveIcon {
animation: moveIcon 2s forwards 3s;
}
@keyframes moveIcon {
to {
left:0;
}
}
body {
overflow:hidden;
}
<div id="courseIcon" class="moveIcon"></div>
Вы также можете сделать это, как показано ниже, без использования calc()
, если вам нужна лучшая поддержка браузера:
#courseIcon {
position: absolute;
background: url(https://placehold.it/100x100) center/contain no-repeat;
width: 100px;
height: 100px;
top: 50%;
left: 50%;
transform:translate(-50%,-50%);
}
/* ICON TRANSITION */
.moveIcon {
animation: moveIcon 2s forwards 3s;
}
@keyframes moveIcon {
to {
left:0;
transform:translate(0%,-50%);
}
}
body {
overflow:hidden;
}
<div id="courseIcon" class="moveIcon"></div>