/js/main.js
https://bitbucket.org/sgospodarets/cross-browser-rotate-box · JavaScript · 29 lines · 24 code · 0 blank · 5 comment · 0 complexity · a99a5bb3e6efd95c08f4e43ce77542ef MD5 · raw file
- $(function() {
- // VARS
- var $rotateWrappers = $('.rotate-wrapper');
- var rotatePath = '.rotate';
- var animSpeed = 500;// ms
- var fromRad = degToRad(0);// deg
- var toRad = degToRad(90);// deg
- var fullRad = toRad - fromRad;
- // FUNCTIONS
- // convert
- function degToRad(_deg){// degrees -> radians
- return _deg * (Math.PI * 2 / 360);
- }
- // recalc
- function recalcAnimtime(currentRad,animToGrad){/* for anim with same speed */
- var leftPerc = Math.abs(animToGrad-currentRad)/fullRad;
- return leftPerc*animSpeed;
- }
- // EVENTS
- $rotateWrappers.each(function(){
- var $rotateWrapper = $(this);
- var $rotate = $rotateWrapper.find(rotatePath)
- $rotateWrapper.hover(function(){
- $rotate.stop().animate({rotate: toRad+'rad'}, recalcAnimtime($rotate.css('rotate'),toRad));
- },function(){
- $rotate.stop().animate({rotate: fromRad+'rad'}, recalcAnimtime($rotate.css('rotate'),fromRad));
- });
- });
- });