たとえば、要素の位置をxピクセルずつインクリメントしようとしています。これが私がこれまでに試したことです:
var top = document.getElementById("something").style.top;
top = top + "300px"
これが機能しないことはわかっていますが、このように位置の値を増やすことができるかどうか疑問に思っていました。
たとえば、要素の位置をxピクセルずつインクリメントしようとしています。これが私がこれまでに試したことです:
var top = document.getElementById("something").style.top;
top = top + "300px"
これが機能しないことはわかっていますが、このように位置の値を増やすことができるかどうか疑問に思っていました。
は、数値部分だけを実際の数値に変換する場合にのみ計算できるstyle.top
ように、末尾に単位を含む文字列であるためです。"300px"
top
位置付けられた要素があり (値を設定すると何かが行われる)、top
CSS を介して設定されていないスタイルが要素に直接設定されていると仮定すると(取得obj.style.top
すると実際に何かが取得されます)、数値を解析することでそれを行うことができます。次のようなスタイル値の
var obj = document.getElementById("something");
var topVal = parseInt(obj.style.top, 10);
obj.style.top = (topVal + 300) + "px";
top
たとえば、値が の場合、200px
になるため、うまくいきません"200px300px"
。これを試して:
var elem = document.getElementById("something");
elem.style.top = parseInt(elem.style.top, 10) + 300 + "px"