Reputation: 15715
I have this fiddle : http://jsfiddle.net/kjow9nhv/2/
<div class='draw'>
<svg id='parent' width="100" height="100">
<circle stroke-dasharray="7,7" cx="45" cy="45" r="45" stroke="gray" stroke-width="3" fill="white"/>
</svg>
<svg id='first' width="50" height="50">
<circle stroke-dasharray="7,7" cx="25" cy="25" r="20" stroke="black" stroke-width="3" fill="red"/>
</svg>
<svg id='second' width="50" height="50">
<circle stroke-dasharray="7,7" cx="25" cy="25" r="20" stroke="black" stroke-width="3" fill="red"/>
</svg>
<svg width="75" height="50">
<rect width="40" stroke-linecap="round" height="5" x="25" y="43" style="fill:yellow;stroke-width:1;stroke:yellow;" />
</svg>
</div>
@-webkit-keyframes rotateClockwiseAnimation {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
@-moz-keyframes rotateClockwiseAnimation {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
@-o-keyframes rotateClockwiseAnimation {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
@keyframes rotateClockwiseAnimation {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
#first {
-webkit-animation: rotateClockwiseAnimation 5s linear infinite;
/* Safari 4+ */
-moz-animation: rotateClockwiseAnimation 5s linear infinite;
/* Fx 5+ */
-o-animation: rotateClockwiseAnimation 5s linear infinite;
/* Opera 12+ */
animation: rotateClockwiseAnimation 5s linear infinite;
}
.draw svg {
position: absolute;
}
#second {
right: 0px;
}
#first,
#second {
top: 20px;
}
div {
width: 91px;
position: relative;
}
#second {
-webkit-animation: rotateAntiClockwiseAnimation 5s linear infinite;
-moz-animation: rotateAntiClockwiseAnimation 5s linear infinite;
-o-animation: rotateAntiClockwiseAnimation 5s linear infinite;
animation: rotateAntiClockwiseAnimation 5s linear infinite;
}
@-webkit-keyframes rotateAntiClockwiseAnimation {
0% {
transform: rotate(360deg);
}
100% {
transform: rotate(0deg);
}
}
@-moz-keyframes rotateAntiClockwiseAnimation {
0% {
transform: rotate(360deg);
}
100% {
transform: rotate(0deg);
}
}
@-o-keyframes rotateAntiClockwiseAnimation {
0% {
transform: rotate(360deg);
}
100% {
transform: rotate(0deg);
}
}
@keyframes rotateAntiClockwiseAnimation {
0% {
transform: rotate(360deg);
}
100% {
transform: rotate(0deg);
}
}
<div class='draw'>
<svg id='parent' width="100" height="100">
<circle stroke-dasharray="7,7" cx="45" cy="45" r="45" stroke="gray" stroke-width="3" fill="white" />
</svg>
<svg id='first' width="50" height="50">
<circle stroke-dasharray="7,7" cx="25" cy="25" r="20" stroke="black" stroke-width="3" fill="red" />
</svg>
<svg id='second' width="50" height="50">
<circle stroke-dasharray="7,7" cx="25" cy="25" r="20" stroke="black" stroke-width="3" fill="red" />
</svg>
<svg width="75" height="50">
<rect width="40" stroke-linecap="round" height="5" x="25" y="43" style="fill:yellow;stroke-width:1;stroke:yellow;" />
</svg>
</div>
As you can see there are two circles (RED) and one rectangle(YELLOW), the circles are rotating independently, and the rectangle joins the centers of the two circles.
Now, what I want to do is to rotate the group, (i.e. two circles, and the rectangle) together as a single unit, within the outer(grey) circle.
This is what I tried: http://jsfiddle.net/kjow9nhv/3/.. but doesnt work.
Upvotes: 0
Views: 99
Reputation: 804
Find out the result: http://jsfiddle.net/vg2o4yya/
Put
transform-origin: center;
width and height for the draw div
Upvotes: 3