Я хочу создать очень простой эффект, перемещающий фоновое изображение при перемещении мыши. Для этого Im записи положения мыши и используя его, чтобы изменить свойство CSS:Эффект сглаживания движения, следующий за позицией мыши
$('#landing-content').mousemove(function(e){
var amountMovedX = (e.pageX * -1/6);
var amountMovedY = (e.pageY * -1/6);
$(this).css('background-position', amountMovedX + 'px ' + amountMovedY + 'px');
});
http://jsfiddle.net/X7UwG/580/
Я хочу, чтобы сделать фон движения менее агрессивны, на первый я, хотя хорошо, позволяет просто увеличить коэффициент делителя в уравнении для того, чтобы сделать более крупные позиции мыши нижней:
http://jsfiddle.net/X7UwG/581/
Основная проблема с этим подходом является то, что фон действительно движется медленнее, но и очень неряшливый (медленно двигайте мышь). Поскольку мы теперь делим на 100 вместо 6, то не десятичная часть результата изменяется после нескольких пикселей движения (открывайте консоль и видите результат). Поскольку фоновое положение принимает не десятичные значения как правильные, движение не является текучим.
Я предполагаю, что у меня есть два способа решения этого вопроса, сглаживание переходов между движениями или другое уравнение, которое преобразует положение мыши в другое положение, но я не могу понять, как это исправить.
Вторая часть проблемы заключается в том, чтобы предотвратить фоновое движение превзойдет размер фона:
Чередуя остается, попробуйте переместить мышь очень медленно поверх изображения, и вы получите я имею в виду – DomingoSL
Вы можете дать «переход», чтобы сделать его немного более плавным: http://jsfiddle.net/X7UwG/583/ – Abhitalks