Что я пытаюсь сделать, это скрипт jQuery, который вращает элементы внутри div, в зависимости от положения курсора в окне браузера.Вращающиеся элементы в соответствии с позицией курсора с jQuery
Соотношение что-то вроде:
maximum_pixels_x-Axys: 2 ° = center_pixels_x-AXYS: 0 °
и то же самое для оси у.
Если курсор находится в центре экрана, нет поворота. Если он находится где-то в другом месте, он должен быть повернут с 0 ° до 2 ° (или отрицательные значения в зависимости от положения экрана в относительной картезианской плоскости). Таким образом, это динамическое вращение с немедленной обратной связью.
Нравится то, что вы видите на рисунке: http://css3playground.com/flashlight.php (выберите из списка "Bevel"), но используя transform:rotate
вместо text-shadow
.
Теперь я пробовал это с транзитом.js, используя sin e cos вместо степени («градус» от 0 до 1). Я знаю, это не правильный путь, но это самый близкий метод, который я представлял себе, чтобы получить низкое значение для степеней.
var max_x = $(window).width();
var max_y = $(window).height();
var center_x = (max_x/2);
var center_y = (max_y/2);
$(document).mousemove(function(e) {
var mouse_x = e.pageX,
mouse_y = e.pageY,
hypotenuse = Math.sqrt(Math.pow((mouse_x-center_x),2)+Math.pow((mouse_y-center_y), 2)),
cos = (mouse_x-center_x)/hypotenuse,
sin = (mouse_y-center_y)/hypotenuse;
$('#div1, #div2').transition({ perspective: '400px', rotateX: sin, rotateY: cos });
});
Но результаты не то, что я ожидал. Дивы вращаются (неверно, но вращаются), но не динамически.
Что мне делать?
Fiddle: http://jsfiddle.net/lucgenti/LtWtW/11/
добавлена ссылка скрипку. Я не знаю, почему это не работает, потому что в моей локальной папке это работает (неправильно, как я сказал). – lucgenti
Для синтаксической ошибки на '.ready': вам нужно'); 'в конце. Во-вторых, как вы импортируете transit.js? Скрипка не импортирует его вообще, не могли бы вы скопировать свою реализацию его на скрипку? –
Если вы делаете значения 'sin' и' cos' более экстремальными (я делал их умножением на 30), вы можете видеть, что он перегружает браузер, заставляя его замораживать –