2013-07-24 5 views
1

Je souhaite faire pivoter un élément div en utilisant CSS3 "transformer: rotate". Je veux obtenir le degré de la position de la souris, comme le suivi de la souris.Transformation CSS3 en utilisant la position de la souris

Comment puis-je y parvenir?

Merci!

+0

Utilisez JavaScript pour suivre la souris et mettre à jour le style. –

+0

oui, mais comment puis-je convertir la position de la souris au degré de rotation? – Reuven

Répondre

4

Vérifier

http://jsfiddle.net/arunberti/fSgPf/1/

$(document).ready(function() { 
    // the same as yours. 
    function rotateOnMouse(e, pw) { 
     var offset = pw.offset(); 
     var center_x = (offset.left) + ($(pw).width()/2); 
     var center_y = (offset.top) + ($(pw).height()/2); 
     var mouse_x = e.pageX; 
     var mouse_y = e.pageY; 
     var radians = Math.atan2(mouse_x - center_x, mouse_y - center_y); 
     var degree = (radians * (180/Math.PI) * -1) + 100; 
     //   window.console.log("de="+degree+","+radians); 
     $(pw).css('-moz-transform', 'rotate(' + degree + 'deg)'); 
     $(pw).css('-webkit-transform', 'rotate(' + degree + 'deg)'); 
     $(pw).css('-o-transform', 'rotate(' + degree + 'deg)'); 
     $(pw).css('-ms-transform', 'rotate(' + degree + 'deg)'); 
    } 

    $('.drop div img').mousedown(function(e) { 
    e.preventDefault(); // prevents the dragging of the image. 
    $(document).bind('mousemove.rotateImg', function(e2) { 
     rotateOnMouse(e2, $('.drop div img')); 
    }); 
    }); 

    $(document).mouseup(function(e) { 
    $(document).unbind('mousemove.rotateImg'); 
    }); 
}); 
+0

parfait! Merci! – Reuven

+0

que dois-je faire pour obtenir le même effet, avec un changement, tourner en bas à gauche transform-origine? – Reuven

+0

** Dupliquer ** de: http://stackoverflow.com/questions/11051676/rotating-div-with-mouse-move –

Questions connexes