Подтвердить что ты не робот

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

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

4b9b3361

Ответ 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-преобразование с соответствующей кривой ослабления применяется к внутреннему контейнеру.