<div id="move-me-3">Текст</div>

<button type="button">ЗДЕСЬ</button>
body, html {margin: 0; padding: 0; }
#move-me-3 {
  border: 1px dashed black;
  border-radius: 80px;
  background-color: #ffe;
  padding: 10px;
  width: 80px;
  height: 80px;
  text-align: center;
  margin: -45px 0 0 -45px;
}
button {
  width: 70px;
  height: 70px;
  border-radius: 70px;
  margin: -35px 0 0 -35px;
}
#move-me-3, button {
  position: absolute;
  top: 50vh;
  left: 50vw;
}
const rho = 150;
let phi = -5;
const phiPerSecond = (Math.PI / 180) * 0.1;
let toggle = true;
const el = document.getElementById("move-me-3");

const position = ({ style }, r, angle) => {
  const x = r * Math.cos(angle);
  const y = r * Math.sin(angle);

  // eslint-disable-next-line no-param-reassign
  style.transform = `translate(${x}px, ${y}px)`;
};

let previousTime;
const update = timestamp => {
  const timeDelta = previousTime ? timestamp - previousTime : 0;
  previousTime = timestamp;

  position(el, rho, phi);
  phi += timeDelta * phiPerSecond;

  if (toggle) {
    window.requestAnimationFrame(update);
  } else {
    previousTime = undefined;
  }
};

const toggleAnimation = () => {
  toggle = !toggle;
  if (toggle) {
    window.requestAnimationFrame(update);
  }
};

document.querySelector('button').addEventListener('click', toggleAnimation);

// start animation
window.requestAnimationFrame(update);

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.