Вы можете использовать вложенные элементы и заставить оболочку и внутренний элемент вращаться в противоположных направлениях, так что вращение внутреннего элемента компенсирует вращение оболочки.
Если вам не нужно держать вложенный элемент в горизонтальном положении, вы можете опустить внутреннее вращение.
Вот вам Dabblet . Фрагмент стека:
/* Arc movement */
.wrapper {
width: 500px;
margin: 300px 0 0;
transition: all 1s;
transform-origin: 50% 50%;
}
.inner {
display: inline-block;
padding: 1em;
transition: transform 1s;
background: lime;
}
html:hover .wrapper {
transform: rotate(180deg);
}
html:hover .inner {
transform: rotate(-180deg);
}
<div class="wrapper">
<div class="inner">Hover me</div>
</div>
Кроме того, Ли Веру написала статью по этому вопросу, в которой использовался только один элемент: http://lea.verou.me/2012/02/moving-an-element-along-a-circle/