Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Как реализовать поворот изображение в сторону курсора (https://javascript.ru/forum/jquery/60845-kak-realizovat-povorot-izobrazhenie-v-storonu-kursora.html)

Georgian 23.01.2016 01:38

Как реализовать поворот изображение в сторону курсора
 
В общем я использую изображение стрелки.

Как сделать вращение стрелки за курсором.
Чтобы стрелка все время была направлена на курсор и меняла свой угол плавно. в сторону курсора..
Никаких движений и т.д Чтобы у курсора было одно указанное мной место. И оно просто меняла угол в сторону курсора..
Плавно. как и само движение курсора.

Georgian 23.01.2016 02:01

приближу к цели. Нужно что-то типа этого: ДЕМО

только чтобы вращение не останавливалось никогда.. И следило за курсором постоянно.. без ограниченного пространства..

рони 23.01.2016 04:03

rotateImg поворот изображения в сторону курсора
 
Georgian,
<!DOCTYPE HTML>

<html>

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

  </style>
  <script src="https://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>

Deff 23.01.2016 04:04

Рони Крут!!

Georgian 23.01.2016 12:37

Спасибо вам ребята =) а можно ли выводить эту шпагу id'ом к изображению, разместив в body ?

Georgian 23.01.2016 12:40

как это возможно?

Georgian 23.01.2016 12:45

и чтобы была одна шпага в указанном мной месте..

рони 23.01.2016 13:02

Цитата:

Сообщение от Georgian
эту шпагу id'ом к изображению

да
Цитата:

Сообщение от Georgian
и чтобы была одна шпага в указанном мной месте..

:cray: строки 45-55 убрать в строке 57 указать id c #

Georgian 23.01.2016 13:05

нужно что-то типа этого..
(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(1),function(indx, element){
$('<img>',{src : 'images/marrow.png',
css : {top : rand(h),left : rand(w)}
}).appendTo('#inner')

});

$('img').rotateImg({deg : 0});
});

Georgian 23.01.2016 13:09

я новичек рони) только начинаю.. плиз покажи как это) плииз)
у меня не выходит


Часовой пояс GMT +3, время: 07:10.