我目前有一个根据鼠标位置更新的图像。查看 [http://www.fore6.com/?p=533][1]
[1]:http ://www.fore6.com/?p=533让您了解我的意思。
问题是我需要将其应用到多个图像,并且每个图像都需要独立于另一个进行动画处理。目前他们都同时动画,即; 他们需要独立制作动画,因为每个图像的鼠标位置都不同!
我可以通过为每个图像重复该函数并更改变量来使其工作,但这是非常多的代码。我怎样才能在一个函数中做到这一点?
我猜我可能需要将每个图像放入一个数组或使用 $(this),但似乎无法弄清楚如何实现它。
任何帮助将不胜感激。我正在使用的代码如下:
var imageX = null;
var imageY = null;
imageX = $('.anim-photo').offset().left;
imageY = $('.anim-photo').offset().top;
$(document).mousemove(function(event) {
var mousePos = new Array(event.pageX, event.pageY);
interact(mousePos, ["0px", "-288px", "-576px"]);
})
function interact(mouseCord, aniCord) {
if (mouseCord[0] < imageX && mouseCord[1] < imageY){ // Box-1
$(".anim-photo").css("background-position", aniCord[0]+" 0px");
} else if (mouseCord[0] > imageX && mouseCord[0] < imageX+285 && mouseCord[1] < imageY){ // Box-2
$(".anim-photo").css("background-position", aniCord[1]+" 0px");
} else if (mouseCord[0] > imageX+285 && mouseCord[1] < imageY){ // Box-3
$(".anim-photo").css("background-position", aniCord[2]+" 0px");
} else if (mouseCord[0] < imageX && mouseCord[1] > imageY && mouseCord[1] < imageY+357){ // Box-4
$(".anim-photo").css("background-position", aniCord[0]+" -360px");
} else if (mouseCord[0] > imageX && mouseCord[0] < imageX+285 && mouseCord[1] > imageY && mouseCord[1] < imageY+357){ // Box-5
$(".anim-photo").css("background-position", aniCord[1]+" -360px");
}else if (mouseCord[0] > imageX+285 && mouseCord[1] > imageY && mouseCord[1] < imageY+357){ // Box-6
$(".anim-photo").css("background-position", aniCord[2]+" -360px");
} else if (mouseCord[0] < imageX && mouseCord[1] > imageY+357){ // Box-7
$(".anim-photo").css("background-position", aniCord[0]+" -720px");
} else if (mouseCord[0] > imageX && mouseCord[0] < imageX+285 && mouseCord[1] > imageY+357){ // Box-8
$(".anim-photo").css("background-position", aniCord[1]+" -720px");
} else if (mouseCord[0] > imageX+285 && mouseCord[1] > imageY+357){ // Box-9
$(".anim-photo").css("background-position", aniCord[2]+" -720px");
}
};