1

ウィンドウの左端からさまざまな距離にある同じクラスの固定位置 div がいくつかあります。特定のアクションが発生したときに、各 div でその距離を同じ量だけ増減したいと思います (この場合、ウィンドウのサイズが変更されています)。ピクセルではなくCSSとパーセンテージで配置しようとしましたが、うまくいきません。

これらの div のそれぞれの位置を配列に格納し、指定された量のピクセルを加算/減算する方法はありますか?

これが私がこれまでに試したことです-私はまだJSについて頭を悩ませているので、これは私が知っているすべてにとって本当に悪いかもしれませんが、ここに行きます:

roomObjects = $('.object-pos');

var objectCount = 0;

for ( var objectCount = 0; objectCount < 10; objectCount++;) {
          roomObjects = rooomObjects[objectCount];
          console.log(roomObjects.css("background-position").split(" "));
        }
4

3 に答える 3

0

少し jQuery を使用できます:

var el = $("#id");
var top = el.css("top");
el.css("top", top * 1.2); // increase top by 20%

DOM のいじくり回しを省く

これは、物事を相対的に配置したい場合に役立ちます: http://docs.jquery.com/UI/Position

于 2012-05-14T17:00:21.170 に答える
0

おそらく直面している問題は、現在の left または top プロパティを取得するときに、末尾にpxof が付いた文字列として返されることです。%返された値に対してa を実行してparseInt()数値を取得してみてください。その後、値に追加できる可能性があります。再割り当てするときは、必要に応じて最後に「px」または「%」を連結してください。

于 2012-05-14T16:42:35.410 に答える
0

パーセンテージが機能しない理由を共有してもよろしいですか? 通常、ウィンドウのサイズ変更時にページを正しくスケーリングしたい場合は、これをお勧めします。あなたが本当にしたいのなら、次のようなことができると思います:

$(window).resize(function() { 
    $('#whateverdiv').style.whateverproperty = $('#whateverdiv').style.whateverproperty.toString() + (newPosition - oldPosition);
    oldPosition = newPosition;
}

これは明らかに完全なコードではありませんが、空白を埋めることができるはずです。関数が初めて機能するように、ページの読み込み時に oldPosition 変数を元の位置に設定する必要があります。

編集:値を追加できるように、x.style.property文字列から単位を取り除く必要もあります

于 2012-05-14T16:51:21.817 に答える