В этой же статье я покажу схожий скрипт, но работать он будет немного по другому принципу. Его суть заключается во вращения объекта вокруг центральной оси, при этом вращение осуществляется так же с помощью курсора. Немного поразмыслив, я решил, что это можно наложить на обычный компас. Нашел подходящую картинку, немного поработал в Photoshop и все получилось. Результат можно посмотреть в примере ниже, а так же скачать исходники.
Ели вам понравилась данная идея, то дальше рассмотрим, как это интегрировать на свой ресурс.
Как обычно, сначала нужно добавить HTML код нашего компаса и будущей анимации.
<div id="compas"> <img src="arrow_c.png" class="arrow_c" > </div>
как ведите, код проще простого. Имеем родительский блок с ID compas, внутрь него просто добавлено изображение arrow_c.png, с помощью тега img и присваиваем класс arrow_c. В нашем случаи картинка - это стрелка, которая будет вращаться и лежит она в той же папке что и файл где добавляется код. Если отправите ее в какую-нибудь папку, то укажите правильно путь. Например, если добавите в папку images, то путь будет прописан так:
<img src="images/arrow_c.png" class="arrow_c" >
Далее черед стилей. Добавьте их в свой файл стилей, который имеет расширение *.css. Их тоже не много:
#compas{ width: 300px; height:300px; background: url(comp.png); } .arrow_c{position:absolute;}
- #compas - Родительский блок, задаем ему размеры опираясь на размеры нашей картинки самого компаса. В нашем случаи это 300 на 300 пикселей. Так же указан путь к этой самой фоновой картинке. У нас картинка лежит в той же папке где файл со стилями. Если вы ее поместите в какую-нибудь папку, то правильно укажите путь к ней.
- .arrow_c - Класс изображения. Тут всего один параметр - абсолютное позиционирование.
Теперь осталось добавить сам скрипт анимации, который и будет вращать нашу стрелку компаса, но перед этим нужно подключить библиотеку jQuery. Если такая же версия подключена ранее, то пропустите этот шаг.
Скрипт был найден на просторах интернета и является старым. Работает с версией библиотеки не выше второй.
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
Ну и сам скрипт, код которого добавляйте после библиотеки.
<script> $(document).ready(function(){ $.fn.rotateImg = function(options) { var defaults = {deg : 0}; var settings = $.extend( {}, defaults, options ); return this.each(function() { var img = $(this); 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)")})})} function rand(a) { return 50 + Math.floor(Math.random() * (a-200))} var w = $(window).width(), h = $(window).height(); $.each(Array(1),function(indx, element){ $('.arrow_c').appendTo('#compas') }); $('.arrow_c').rotateImg({deg : 0}); }); </script>
Особых настроек тут нет, в самом конце указаны класс и айди изображения и основного блока. Если решите поменять их название, не забудьте это сделать и в скрипте.
Все, больше ничего делать не нужно. Если все сделано правильно - результат не заставит себя ждать. Воплощение идеи в виде компаса, это чисто мое видение. Вы можете адаптировать материал под себя, конкретную задачу и полностью изменить подачу. Надеюсь материал этой статьи будет полезным для вас.
На этом все, спасибо за внимание. 🙂