JSFiddle - React, Tailwind, and code Playground
by luka kupunia
HTML
<div class="body">
<div id="box"></div>
</div>
<button>next</button>
CSS
body {
margin: 0;
overflow: hidden;
border:1px solid red;
}
div.body {
height: 500px;
width: 100%;
position: relative;
overflow: hidden;
}
div#box {
border-radius: 50%;
border:1px dashed black;
/* margin: 100px; */
position: absolute;
left: 50%;
top: 100px;
transform: translate(-50%,0) rotate(0);
transition: 1s;
}
div#box div.stick_ {
width: 5px;
height: 50%;
position: absolute;
top: 0px;
left: 50%;
margin-left: 0px;
background: transparent;
transform-origin: bottom;
}
div#box div.fragment_ {
width: 1px;
height: 10px;
background: black;
opacity: .4;
position: absolute;
top: -20px;
left: 0;
}
JavaScript
var a = document.querySelector('#box');
var paint = function(n){
var deg = 0;
var plus = 360 / n;
var delay = 0.1;
for(var i = 0; i < n; i++){
var element = document.createElement('div');
var innerElement = document.createElement('div');
innerElement.classList.add('fragment_');
element.classList.add('stick_')
a.append(element);
element.append(innerElement);
/* innerElement.style.animationDelay = delay + 's' */;
element.style.transform = 'rotate(' + deg + 'deg)';
deg+= plus;
delay += 0.05;
}
}
paint(16);
var _q = 22.5;
$('button').click(function(){
$('#box').css({
transform: 'translate(-50%,0) rotate(' + _q + 'deg)'
});
_q += 22.5;
})