2013-07-24 69 views
1

我想旋轉div元素使用CSS3「transform:rotate」。 我想從鼠標位置獲取程度,如跟蹤鼠標。CSS3變換使用鼠標位置旋轉

我該如何做到這一點?

謝謝!

+0

使用JavaScript跟蹤鼠標和更新的風格。 –

+0

是的,但我如何將鼠標位置轉換爲旋轉度? – Reuven

回答

4

檢查

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

完美!謝謝! – Reuven

+0

我應該怎麼做才能實現相同的效果,只需進行一次更改,就可以在左下方的變換原點上旋轉? – Reuven

+0

**重複的**:http://stackoverflow.com/questions/11051676/rotating-div-with-mouse-move –