JSFiddle - React, Tailwind, and code Playground
by Dragos Petre
HTML
<div id="rotator">
<div class="elemente" id="elem1">Text1</div>
<div class="elemente" id="elem2">Text2</div>
<div class="elemente" id="elem3">Text3</div>
<div class="elemente" id="elem4">Text4</div>
<div class="elemente" id="elem5">Text5</div>
</div>
CSS
@keyframes circle {
from { transform:rotate(0deg); }
to { transform:rotate(360deg); }
}
@keyframes inner-circle {
from { transform:rotate(0deg); }
to { transform:rotate(-360deg); }
}
#rotator {
width:350px;
height:350px;
margin:20px auto;
font-size:10px;
line-height:1;
transform-origin: 50% 50%;
animation:circle 25s linear infinite;
}
#rotator > div {
background-color:#e1e1e1;
animation:inner-circle 25s linear infinite;
width:50px;
height:50px;
}
JavaScript
$("document").ready(function(){
var block = $("#rotator div").get(),
increase = Math.PI * 2 / block.length,
x = 0, y = 0, angle = 0;
for (var i = 0; i < block.length; i++) {
var elem = block[i];
x = 140 * Math.cos(angle) + 150;
y = 140 * Math.sin(angle) + 150;
elem.style.position = 'absolute';
elem.style.left = x + 'px';
elem.style.top = y + 'px';
var rot = 90 + (i * (360 / block.length));
angle += increase;
}
$( "#rotator" )
.mouseenter(function() {
$('#rotator').css('-webkit-animation-play-state','paused');
$('#rotator').css('-moz-animation-play-state','paused');
$('#rotator').css('animation-play-state','paused');
$('#rotator > div').css('-webkit-animation-play-state','paused');
$('#rotator > div').css('-moz-animation-play-state','paused');
$('#rotator > div').css('animation-play-state','paused');
})
.mouseleave(function() {
$('#rotator').css('-webkit-animation-play-state','running');
$('#rotator').css('-moz-animation-play-state','running');
$('#rotator').css('animation-play-state','running');
$('#rotator > div').css('-webkit-animation-play-state','running');
$('#rotator > div').css('-moz-animation-play-state','running');
$('#rotator > div').css('animation-play-state','running');
});
});