Edit in JSFiddle

(function(win){
    var timer = null;
    var polyfill = function(callback){
        clearTimeout(timer);
        setTimeout(callback, 1000 / 60);
    };
    win.requestAnimationFrame = win.requestAnimationFrame
    || win.mozRequestAnimationFrame
    || win.webkitRequestAnimationFrame
    || polyfill;
}(window));

(function(){
    var target, $el, step;
    
    target = { left: 0, top: 0 };
    $el = $(".sample");
    step = function(){
        var pos = $el.offset();
        $el.css({
            left: "+=" + (target.left - pos.left) / 5,
            top: "+=" + (target.top - pos.top) / 5
        });
        requestAnimationFrame(step);
    };
    step();
    
    $(document).on("click", function(e){
        target.left = e.clientX;
        target.top = e.clientY;
    });
    
}());
<div class="sample">(/・ω・)/</div>
.sample {
    position: absolute;
    left: 0;
    top: 0;
}