私はあなたの例を更新しましたが、現在は問題なく動作しているようです (少なくとも Google Chrome 15 と IE9 では)。
http://jsfiddle.net/jPFAq/10/
基本的にはと同じように座標計算を変更mouseover
して行いました。mouseenter
mouseenter
mousemove
更新:
さらに、変数の使用を削除し、ハンドラーの実行中にmousemove
イベント ( jQuery.unbind
)のサブスクライブを解除しました。mouseenter
参照用のコードは次のとおりです。
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);
});
});