Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>JS Bin</title>
</head>
<body>
  <div class="player"></div>
  <button id="start">start</button>
</body>
</html>
 
.player {
  @size: 60px;
  
  position: absolute;
  top: 50%;
  left: 50%;
  margin-left: -@size/2;
  width: @size;
  height: @size;
  border-radius: 50%;
  border-width: 20px;
  border-style: solid;
  border-top-color: blue;
  border-left-color: green;
  border-bottom-color: orange;
  border-right-color: pink;
  transition: .15s ease-in-out;
}
#start {
  position: absolute;
  bottom: 1%;
  left: 1%;
}
span {
  @size: 20px;
  
  display: block;
  position: absolute;
  top: 0;
  left: 50%;
  margin-left: @size/2;
  height: @size;
  width: @size;
  background-color: gray;
  
  &.blue {
    background-color: blue;
  }
  &.green {
    background-color: green;
  }
  &.orange {
    background-color: orange;
  }
  &.pink {
    background-color: pink;
  }
}
 
var player = document.querySelector('.player'),
    start = document.querySelector('#start'),
    totalHeight = player.offsetTop,
    box,
    counter = 0,
    colors= new Array("blue","green","orange","pink");
// ===
// === PLAYER
// ===
// ROTATE THE PLAYER CLOCKWISE
function play(){
  player.addEventListener('click',function(e){
    deg = 90;
    player.style.webkitTransform += 'rotate('+deg+'deg)'; 
    player.style.transform += 'rotate('+deg+'deg)';
  });
}
// ===
// === BOX
// ===
// CREATE NEW BOX
function makeNew() {
  var random = colors[Math.floor(Math.random() * colors.length)],
      box = document.createElement('span');
  box.className = random;
  document.body.appendChild(box);
  move(box,totalHeight);
}
// ANIMATE THE BOX
function move(elem,height) {
  var top = 0;
  function frame() {
    top++;
    elem.style.top = top + 'px';
    if (top == height){
      clearInterval(id);
    }
  }
  var id = setInterval(frame, 10);
}
// INIT BUTTON
start.addEventListener('click',function(e){
  makeNew();
  play()();
});
Output

This bin was created anonymously and its free preview time has expired (learn why). — Get a free unrestricted account

Dismiss x
public
Bin info
anonymouspro
0viewers