2

作業中のWebサイトのポップオーバーコントロールを作成しようとしていますが、位置を正しく設定できません。ハイパーリンクの中心を取得するさまざまな方法を試しましたが、常に少しずれています。

座標をハードコーディングしたくないのは、これをユニバーサルにする必要があるためです。将来、ポップオーバーを使用する可能性のあるすべてのリンクで機能する必要があります。

私はここで何が間違っているのですか?

これが私の現在の方法です:

$('#whatsthis').click(function(e) 
{
    var _linkLocation = $(this).offset();
    $('#helpTip').css('position','absolute');

    $('#helpTip').css('left', _linkLocation.left - $(this).width()/2);

    $('#helpTip').fadeIn();
    return false;
}); 

..そしてこれが現在の出力です:

ここに画像の説明を入力してください

4

2 に答える 2

3

括弧を使用して、デルタを半分にする前に確実にデルタを取得します。

(_linkLocation.left - $(this).width()) / 2

そうしないと、演算子の優先順位が最初に幅の結果にバインド/ 2され、誤った結果が返されます。

于 2012-10-07T10:50:34.020 に答える
1

以下をお試しください:

$('#whatsthis').click(function(e)  {
    var _linkLocation = $(this).offset(), $helpTip = $('#helpTip');
    $helpTip.offset({ 
        'left': _linkLocation.left + $(this).width()/2 - $helpTip.width()/2,
        'top': _linkLocation.top + $(this).height()
    }).fadeIn();
    return false;
}); 
于 2012-10-07T10:50:57.627 に答える