CSS3变换使用鼠标位置旋转

CSS3 transform rotate using mouse position

本文关键字:位置 旋转 鼠标 变换 CSS3      更新时间:2023-09-26

我想使用CSS3"transform:rotate"旋转div元素。我想从鼠标的位置获得度数,就像跟踪鼠标一样。

我怎样才能做到这一点?

谢谢!

检查

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');
  });
});