2011-07-29 8 views
1

私にid = 『テスト』とdiv要素の上に私のマウスを移動すると、私はそれがバックグラウンドに移動する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+'%'}); 
     }); 
    }); 

の以下の部分を持っていると、複数のdiv。今、私はそれを変更して、マウスをどこに動かしても背景が動くようにしたい。

これを行う方法はありますか?私は本当にあなたの助けに感謝

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

:またはそれはあなたのような何かを得るように、複数のdivタグを使用することが可能です!

答えて

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イベントがあることに注意してくださいその要素の上にマウスを移動すると、その要素上のハンドラとドキュメント上のハンドラ(およびハンドラもあればその間の要素)の両方が呼び出されます。

また、ドキュメント上のmousemoveの追跡は、特に旧式のブラウザでは遅くなる可能性があることにも注意してください。しばらくそれを追跡する必要がある場合は、イベントハンドラを終了したときにイベントハンドラをアンバインドする必要があります。

+0

あなたもありがとうございます! –

+0

@トーマス歓迎です:) – Paulpro

0

を試してみてください私はあなたが探している効果は、視差効果だと思いますが、わずかに修正しました。だから、thisのようなもの、またはthisのようなもの。

関連する問題