JSFiddle - React, Tailwind, and code Playground

HTML

<body>
<h1>Rotation</h1>

<div id="graph1"></div>
<div id="marker">Wherever you click, it rotates to here</div>

</body>

CSS

#graph1 {
    position:absolute;
    top:100px;
    left:50px;
    width:400px;
    height:400px;
    background-image:url('http://www.showmethemath.com/Math_Practice/coordinateGridSquareScaleOf2.gif');
    background-position:center center;
    background-size:contain;
    background-repeat:no-repeat;
    /*transition:transform 1s ease;*/
    transform:rotate(30deg);
    transform-origin:50% 50%;
    border-radius:50%;
}

#marker {
    position: absolute;
    top:300px;
    left:450px;
    border-top:1px solid black;
}

JavaScript

$.fn.animateRotate = function(angle, start, duration, easing, complete) {
  var args = $.speed(duration, easing, complete);
  var step = args.step;
  return this.each(function(i, e) {
    args.complete = $.proxy(args.complete, e);
    args.step = function(now) {
      $.style(e, 'transform', 'rotate(' + now + 'deg)');
      if (step) return step.apply(e, arguments);
    };

    $({deg: start}).animate({deg: angle}, args);
  });
};

$(function () {
    $('body').on('click', '#graph1', function (e) {

        console.log('********************');
        //get mouse position relative to div and center of div for polar origin
        var pos = getMousePosAndCenter(e, 'graph1');

        //get the current degrees of rotation from the css
        var currentRotationDegrees = getCSSRotation('#graph1');
        console.log('currentDegrees: ' + currentRotationDegrees);

        //current rotation in radians
        var currentRotationRadians = radians(currentRotationDegrees);

        //radians where clicked
        var clickRadiansFromZero = Math.atan2(pos.y - pos.originY, pos.x - pos.originX);

        //degrees the click is offset from 0 origin
        var offsetDegrees = degrees(clickRadiansFromZero);

        //how many degrees to rotate in css to put the mouse click at 0
        var degreesToZero;
        if (offsetDegrees >= 0)
            degreesToZero = currentRotationDegrees - Math.abs(offsetDegrees);
        else
            degreesToZero = currentRotationDegrees + Math.abs(offsetDegrees);

        console.log("targetDegrees: " + degreesToZero);

        //distance in pixels from origin
        var distance = calculateDistance(pos.originX, pos.originY, pos.x, pos.y);

        console.log("Distance From Origin(px): " + distance);

        if(currentRotationDegrees > degreesToZero){
        	currentRotationDegrees -= 360;
        }

        $('#graph1').animateRotate(degreesToZero, currentRotationDegrees);
    });

});

function getMousePosAndCenter(e, id) {
   ...