0

位置がすでに30%の場合は3pxdivへのリンクclickをアニメーション化し、 3pxの場合は上に移動しようとしています。bottom

$(document).ready(function () {

    $('#picsClick').click(function () {

        if ($('#mainLogo').position().bottom === '30%') {
            $("#mainMenu").animate({ bottom: "3px" }, 1100);
        }
        else if (($('#mainLogo').position().bottom === '3px')) {
            $("#mainMenu").animate({ bottom: "30%" }, 1100);

        }

    });
});

divmainMenu の位置をbottom 30%に設定したため、どういうわけか実行されず、その位置はabsolute.
ありがとう。

4

2 に答える 2

1

position() によって返されるオブジェクトには、プロパティ left と top のみが含まれます。一番下は存在しないプロパティであるため、コードは失敗します。

詳細については、jQuery のドキュメントを参照してください。

于 2013-08-23T11:09:48.207 に答える
0

jquery position API は要素の座標を提供します。X と Y - 上と左を意味します。これらを中心にロジックをリファクタリングする必要があります。それを行った後でも、返される値は数値であることに注意してください。ページの寸法に対する要素の位置に基づく絶対値です。パーセンテージは期待できません。したがって、比較ロジックも変更されます。

たとえば、これが要素の場合:

<input type="text" id="inpId" name="address" value="* Property Address :" style="top: 30%; position: absolute; ">
console.log(typeof $('#inpId').position()['top'])  // "number"
console.log(typeof $('#inpId').position()['bottom'])  // "undefined"

jqueryの位置を見る

編集: ロジックを下部に集中させるには、上部に関して同じことを計算する必要があります。この質問を参照してください:

要素の下と右の位置を取得する

それが役に立てば幸い :)

于 2013-08-23T11:11:17.083 に答える