# Rotate any jQuery selected element. # Credit: https://gist.github.com/hoandang/5989980 # Credit: https://stackoverflow.com/a/15191130/1544937 $.fn.rotate = (degree = 0, duration = 1000) -> element = $(this) rotation = -> matrix = element.css "-webkit-transform" or element.css "-moz-transform" or element.css "-ms-transform" or element.css "-o-transform" or element.css "transform" if matrix isnt "none" matrix = matrix.split("(")[1].split(")")[0].split(",") return Math.round Math.atan2(matrix[1], matrix[0]) * (180 / Math.PI) else return 0 rotation = rotation() if rotation isnt degree $("deg": rotation).animate "deg": degree, "duration": duration "step": (now) => element.css "transform": "rotate(" + now + "deg)"