CSS3 Перевод через дугу

Возможно ли, что текущий CSS3 для перевода объекта (в частности, DIV) по дуге или кривой? Вот изображение, которое поможет проиллюстрировать. enter image description here

Ответ 1

Вы можете использовать вложенные элементы и заставить обертку и внутренний элемент вращаться в противоположных направлениях, так что вращение внутреннего элемента компенсирует вращение обертки.

Если вам не нужно держать вложенный элемент горизонтальным, вы можете опустить внутреннее вращение.

Вот 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>

Ответ 2

Да, эта анимация может быть создана с использованием свойства CSS3 transform-origin, чтобы установить точку вращения в крайнем правом углу, чтобы она двигалась так.

Проверьте это: http://jsfiddle.net/Q9nGn/4/ (наведите указатель мыши)

#c {
    border: 1px solid black;
    height: 400px;
}

#c:hover #m {
    -webkit-transform: rotate(180deg);
    -webkit-transition: all 1s ease-in-out;
    -moz-transform: rotate(180deg);
    -moz-transition: all 1s ease-in-out;
    -o-transform: rotate(180deg);
    -o-transition: all 1s ease-in-out;
    -ms-transform: rotate(180deg);
    -ms-transition: all 1s ease-in-out;
    transform: rotate(180deg);
    transition: all 1s ease-in-out;
}

#m {
    width: 60px;
    height: 60px;
    position: absolute;
    background: green;
    border-radius: 30px;
    top: 270px;
    left: 20px;
    -webkit-transform-origin:300px 30px;
    -moz-transform-origin:300px 30px;
    -o-transform-origin:300px 30px;
    -ms-transform-origin:300px 30px;
    transform-origin:300px 30px;
}
<div id="c">
    <div id="m"></div>
</div>

Ответ 3

Альтернативой перемещению начала преобразования является использование двойного вложенного элемента, где x-преобразование применяется к внешнему контейнеру, а y-преобразование с соответствующей кривой ослабления применяется к внутреннему контейнеру.