Katrs elements ir jāpiesaista individuāli, lai pilnvērtīgi strādātu.
Tas ir jāsaprot tā, ka vairākus elementus nevar izsaukt pa taisno ar $(elementi).trackMouse(), to vajag darīt ar each loopu. $(elementi).each(...$(this).trackMouse()

 

Demo: CodePen

 

JavaScript (jQuery lib)

$(document).on('mousemove', function(event) {
    $('.animal').each(function() {
        $(this).trackMouse(event);
    });
});

$.fn.trackMouse = function(event) {
    /**
     * Get degrees
     */
    {
        // Change the origin of rotation
        var originX = $(this).offset().left + $(this).width() / 2;
        var originY = $(this).offset().top + $(this).height() / 2;

        // Getting 0-360 https://stackoverflow.com/a/1313753
        // Get radians of mouse position
        var rad = Math.atan2(-(event.pageY - originY), -(event.pageX - originX));
        // Transform radians into degres
        var deg = rad / Math.PI * 180 + 180;

        // Round to remove decimals
        // Modulo just to be sure it's between 0-360
        deg = Math.round(deg % 360);
    }

    /**
     * Rotate the element
     */
    {
        // Add 270 so it "looks" at the mouse
        $(this).css('transform', 'rotate(' + (deg + 270) + 'deg)');
    }

    return this;
}

Laboja Greed, labots 1x