@NisXan

Как сделать поворот картинки в виде стрелки за указателем мыши?

Здравствуйте, подскажите как можно сделать нечто подобное: есть стрелка "компаса" а вокруг нее несколько блоков, и при наведении на блок, в его сторону поворачивается стрелка.
q5uHvO1rJTc.jpg
  • Вопрос задан
  • 430 просмотров
Решения вопроса 1
ch1sel
@ch1sel
probability is extremely small
Отличный пример ссылка:
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  img{
    width: 128px;
  }

  </style>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <script>
(function($) {
    $.fn.rotateImg = function(options) {
        var defaults = {deg : 0};
  	    var settings = $.extend( {}, defaults, options );
        return this.each(function() {
            var img = $(this).css({position: 'absolute'});
            var imgpos = img.position();
            var x0, y0;
            $(window).load(function() {
                x0 = imgpos.left + img.width() / 2;
                y0 = imgpos.top + img.height() / 2
            });
            var x, y, x1, y1, r;
            $("html").mousemove(function(e) {
                x1 = e.pageX;
                y1 = e.pageY;
                x = x1 - x0;
                y = y1 - y0;
                r = 180 + settings.deg - 180 / Math.PI * Math.atan2(y, x);
                img.css("transform", "rotate(-" + r + "deg)");
                img.css("-moz-transform", "rotate(-" + r + "deg)");
                img.css("-webkit-transform", "rotate(-" + r + "deg)");
                img.css("-o-transform", "rotate(-" + r + "deg)")
            })
        })
    }
})(jQuery);

$(function(){
function rand(a) {
        return 50 + Math.floor(Math.random() * (a-200))
    }
var w = $(window).width(), h = $(window).height();

$.each(Array(33),function(indx, element){
$('<img>',{src : 'http://vignette3.wikia.nocookie.net/assassinscreed/images/e/ec/AcII-common-sword.png/revision/latest?cb=20151018215313&path-prefix=ru',
css : {top : rand(h),left : rand(w)}
}).appendTo('body')

      });

$('img').rotateImg({deg : 0});//задать угол коррекции если нужно
});


  </script>
</head>

<body>

</body>

</html>
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы