Скрипт указатель на курсор в виде компаса. Движение за курсором.
Віталий
Доброго времени суток 🙂
Эта статья схожа по содержанию с предыдущей и в ней продолжается тема по анимации суть которой скрипт слежения за движением курсора. В прошлой статье я описал работу скрипта, который двигал объект в заданной области. В том случаи это были зрачки нарисованного кота. Складывалось ощущение, что кот следит за движением курсора. Подробнее об этом можете прочитать в статье - Скрипт движение за курсором. Слежение за курсором.
В этой же статье я покажу схожий скрипт, но работать он будет немного по другому принципу. Его суть заключается во вращения объекта вокруг центральной оси, при этом вращение осуществляется так же с помощью курсора. Немного поразмыслив, я решил, что это можно наложить на обычный компас. Нашел подходящую картинку, немного поработал в Photoshop и все получилось. Результат можно посмотреть в примере ниже, а так же скачать исходники.
Ели вам понравилась данная идея, то дальше рассмотрим, как это интегрировать на свой ресурс.
Как обычно, сначала нужно добавить HTML код нашего компаса и будущей анимации.
как ведите, код проще простого. Имеем родительский блок с ID compas, внутрь него просто добавлено изображение arrow_c.png, с помощью тега img и присваиваем класс arrow_c. В нашем случаи картинка - это стрелка, которая будет вращаться и лежит она в той же папке что и файл где добавляется код. Если отправите ее в какую-нибудь папку, то укажите правильно путь. Например, если добавите в папку images, то путь будет прописан так:
<img src="images/arrow_c.png" class="arrow_c" >
Далее черед стилей. Добавьте их в свой файл стилей, который имеет расширение *.css. Их тоже не много:
#compas - Родительский блок, задаем ему размеры опираясь на размеры нашей картинки самого компаса. В нашем случаи это 300 на 300 пикселей. Так же указан путь к этой самой фоновой картинке. У нас картинка лежит в той же папке где файл со стилями. Если вы ее поместите в какую-нибудь папку, то правильно укажите путь к ней.
.arrow_c - Класс изображения. Тут всего один параметр - абсолютное позиционирование.
Теперь осталось добавить сам скрипт анимации, который и будет вращать нашу стрелку компаса, но перед этим нужно подключить библиотеку jQuery. Если такая же версия подключена ранее, то пропустите этот шаг.
Скрипт был найден на просторах интернета и является старым. Работает с версией библиотеки не выше второй.
Ну и сам скрипт, код которого добавляйте после библиотеки.
<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>
Особых настроек тут нет, в самом конце указаны класс и айди изображения и основного блока. Если решите поменять их название, не забудьте это сделать и в скрипте.
Все, больше ничего делать не нужно. Если все сделано правильно - результат не заставит себя ждать. Воплощение идеи в виде компаса, это чисто мое видение. Вы можете адаптировать материал под себя, конкретную задачу и полностью изменить подачу. Надеюсь материал этой статьи будет полезным для вас.