それは(少なくともGoogle Chromeの15とIE9で)今、[OK]を動作することを、私はあなたの例を更新している、それはそうです。
http://jsfiddle.net/jPFAq/10/
基本的に、私はmouseenter
にmouseover
を変更しmousemove
と同様mouseenter
の座標計算を行いました。
UPDATE:
加えて、私は、変数の使用を削除しているとmouseenter
ハンドラが動作している間、私はちょうど、mousemove
イベント(jQuery.unbind
)から脱退しています。ここで
は参照用のコードです:あなたは後にしているものを
function onmousemovehandler(e){
mouse_dx = -(e.pageX);
mouse_dy = -(e.pageY);
$('#foreg').css({
'left': mouse_dx,
'top': mouse_dy
});
mouse_dx = (mouse_dx)/2;
mouse_dy = (mouse_dy)/2;
$('#backg').css({
'left': mouse_dx,
'top': mouse_dy
});
};
$(document).mouseenter(function(e) {
$(document).unbind('mousemove', onmousemovehandler);
mouse_x = -(e.pageX);
mouse_y = -(e.pageY);
$('#foreg').animate({
'left': mouse_x,
'top': mouse_y
},
300);
$('#backg').animate({
'left': mouse_x/2,
'top': mouse_y/2
},
300,
function() {
$(document).mousemove(onmousemovehandler);
});
});
かなりわからないが、私は代わりに.css' 'の' .animate'を使用するようにフィドルを修正しました。今は飛び跳ねることはありませんが、ウィジェットは蝶の漁船のような運命のようです。 http://jsfiddle.net/karim79/jPFAq/1/そこにいくつかの遅延を入れて、ブラウザがすべてのマウス操作をキューに入れないようにすることができます。これがあなたの望むものなら、私は答えとして投稿します。 – karim79
私はすでにそれを試みました。それはあまり反応が良くありません。私は今ある効果を踏みつけたいですが、テレポートする蝶はありません。 – user701510