CSS3 Translate across an Arc

前端 未结 3 1277
囚心锁ツ
囚心锁ツ 2020-12-13 17:52

Is it at all possible with current CSS3 to translate an object (specifically a DIV) along an arc or curve? Here\'s an image to help illustrate.

3条回答
  •  挽巷
    挽巷 (楼主)
    2020-12-13 18:44

    You can use nested elements and make the wrapper and inner element rotate in opposite directions so that the rotation of the inner element compensates for the rotation of the wrapper.

    If you don't need to keep the nested element horizontal, you can omit the inner rotation.

    Here is a Dabblet. Stack Snippet:

    /* 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);
    }
    Hover me

    Also, Lea Verou wrote an article on this issue with a way that use only one element: http://lea.verou.me/2012/02/moving-an-element-along-a-circle/

提交回复
热议问题