2011-07-29 15 views
1

我有下面這段jQuery的整個頁面或「.mousemove」

$(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 =‘測試’的DIV多個div。現在我想改變它,所以無論您將鼠標移動到何處,背景都在移動。

那麼有沒有辦法做到這一點?或者是有可能使用多個div,所以你得到這樣的東西:

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

我真的很感謝你的幫助!

回答

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+'%'}); 
     }); 
    }); 
+0

非常感謝。愚蠢的,我無法想象的;-) –

2

您可以將事件綁定到這樣的文件:

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

要知道,任何其他元素泡所有其他鼠標移動事件到文件中,所以如果你有在某些元素上另一個處理程序文檔,然後將鼠標移動到該元素上,它將調用該元素上的處理程序以及文檔上的處理程序(以及處理它們之間的任何元素)。

您還應該注意,在文檔上跟蹤mousemove可能會很慢,尤其是在較舊的瀏覽器上。如果您只需要跟蹤一段時間,那麼在完成該事件處理程序時應該解除綁定事件處理程序。

+0

你說得對,謝謝! –

+0

@Thomas不客氣:) – Paulpro

0

我認爲你正在尋找的效果是視差效果,但稍加修改。所以像this或類似this