1

我有以下 jQuery

$(document).ready(function(){
        var vH=$('#background').height();
        var vW=$('#background').width();
        var vT=$('#background').offset().top;
        var vL=$('#background').offset().left;
        $('#test').mousemove(function(e){
            var ypos=e.pageY-vT;
            var xpos=e.pageX-vL;
            var y=Math.round(ypos/vW*1500);
            var x=Math.round(xpos/vH*200);
            $('#test').val(x+' , '+y);
            $('#background').css({backgroundPosition: x+'% '+y+'%'});
        });
    });

当我将鼠标移到 id="test" 的 div 上时,它会移动背景。现在我想改变它,这样无论你将鼠标移到哪里,背景都会移动。

那么有没有办法做到这一点?或者是否可以使用多个 div,这样你会得到类似的东西:

$('#test', '#test2').mousemove(function(e){

我真的很感谢你的帮助!

4

3 回答 3

2

您可以像这样将事件绑定到文档:

$(document).mousemove(function(e){ ...

请注意,任何其他元素上的所有其他 mousemove 事件都会冒泡到文档,因此,如果您在文档中的某个元素上有另一个处理程序,并且您将鼠标移到该元素上,它将调用该元素上的处理程序,并且文档上的那个(以及中间的任何元素,如果它们也有处理程序的话)。

您还应该知道,在文档上跟踪 mousemove 可能会很慢,尤其是在旧浏览器上。如果您只需要跟踪一段时间,您应该在完成后取消绑定事件处理程序。

于 2011-07-29T15:08:54.383 回答
2

试试这个

$(document).ready(function(){
        var vH=$('#background').height();
        var vW=$('#background').width();
        var vT=$('#background').offset().top;
        var vL=$('#background').offset().left;
        $(document).mousemove(function(e){
            var ypos=e.pageY-vT;
            var xpos=e.pageX-vL;
            var y=Math.round(ypos/vW*1500);
            var x=Math.round(xpos/vH*200);
            $('#test').val(x+' , '+y);
            $('#background').css({backgroundPosition: x+'% '+y+'%'});
        });
    });
于 2011-07-29T15:09:06.123 回答
0

我认为您正在寻找的效果是视差效果,但略有修改。所以像这样,或者像这样

于 2011-07-29T15:14:56.053 回答