これが私が達成しようとしていることの小さな例です:
var elemOrigPos;
$('div.box').hover(
function() {
var $this = $(this);
elemOrigPos = $this.position();
var offset = 50;
$this.stop(true, true).animate({
'width': '200px',
'height': '200px',
'top': (elemOrigPos.top - offset) + 'px',
'left': (elemOrigPos.left - offset) + 'px'
}, 150);
},
function() {
$(this).stop(true, true).animate({
'width': '100px',
'height': '100px',
'top': (elemOrigPos.top) + 'px',
'left': (elemOrigPos.left) + 'px'
}, 150);
}
);
要素にゆっくりとカーソルを合わせると正常に機能しますが、要素にすばやくカーソルを合わせると、元の位置が失われます。アニメーションが完了する前にposition()を使用したことと関係があると思いますが、解決策を見つけることができませんでした。
この動作を修正するためのヒントやヒントを事前に感謝します。:)