JavaScriptで変形した要素の位置を設定する方法|transformOriginプロパティの使い方
JavaScriptで変形(transform)された要素の位置を変更するには、transformOriginプロパティを使用します。このプロパティを使うことで、要素が回転・拡大縮小される際の基準点(原点)を自由に指定できます。
transformOriginプロパティとは
transformOriginは、CSSのtransform-originに対応するJavaScriptのプロパティです。デフォルトでは要素の中心(50% 50%)が基準点になりますが、ピクセル値やパーセンテージを指定することで、回転やスケール変換の起点を任意の場所に変更できます。
また、3D変形を扱う場合は、親要素側の視点位置を制御するperspectiveOriginプロパティも合わせて使用します。
サンプルコード
以下のコードでは、ボタンをクリックするとdiv要素の基準点と視点の位置が変更されます。実際にブラウザで実行して挙動を確認してみてください。
<!DOCTYPE html>
<html>
<head>
<style>
#div1 {
position: relative;
margin: auto;
height: 200px;
width: 200px;
padding: 20px;
border: 2px solid blue;
perspective: 100px;
}
#div2 {
padding: 80px;
position: absolute;
border: 2px solid blue;
background-color: yellow;
transform: rotateX(45deg);
}
#div3 {
padding: 50px;
position: absolute;
border: 2px solid blue;
background-color: green;
transform: rotateX(30deg);
}
</style>
</head>
<body>
<p>div要素のプロパティを変更します</p>
<button onclick="display()">基準点の位置を設定する</button>
<div id="div1">DIV1
<div id="div2">DIV2</div>
<div id="div3">DIV3</div>
</div>
<script>
function display() {
document.getElementById("div1").style.perspectiveOrigin = "20px 10%";
document.getElementById("div2").style.transformOrigin = "0 0";
}
</script>
</body>
</html>
コードの解説
perspectiveOriginで視点の位置を変更
document.getElementById("div1").style.perspectiveOrigin = "20px 10%"; の部分では、親要素(div1)のパースペクティブ(遠近感)の原点を「左から20px・上から10%」の位置に移動しています。これにより、子要素の3D表示の見え方が変化します。
transformOriginで変形の基準点を変更
document.getElementById("div2").style.transformOrigin = "0 0"; の部分では、DIV2の変形基準点を要素の左上(0, 0)に設定しています。そのため、rotateX(45deg)による回転が中心ではなく左上を軸として行われます。
まとめ
- transformOrigin:要素自身の変形(回転・拡大縮小など)の基準点を指定する
- perspectiveOrigin:親要素の3D視点(消失点)の位置を指定する
- どちらも
element.style.プロパティ名 = 値;の形式でJavaScriptから動的に設定可能
-
JavaScriptでリストアイテムのマーカー位置を設定する方法
JavaScriptでリストアイテムのマーカー位置を設定するには リストアイテムのマーカー(行頭記号)の位置を設定するには、JavaScriptのlistStylePositionプロパティを使用します。このプロパティはCSSのlist-style-positionプロパティに対応しており、ボタン操作などのタイミングでマーカーの表示位置を動的に変更できます。 listStylePositionプロパティに指定できる値 inside … マーカーをリストアイテムの内側(テキストの流れの中)に表示します。 outside … マーカーをリストアイテムの外側に表示します(初期値)。 サンプルコー
-
JavaScriptで要素のマージンを設定する方法をわかりやすく解説
JavaScriptで要素のマージンを設定するには、marginプロパティを使用します。このプロパティを使うと、要素の外側の余白(マージン)を上下左右の4辺まとめて指定することができます。marginプロパティの基本的な使い方JavaScriptでは、element.style.marginに値を代入することでマージンを設定できます。値は「上・右・下・左」の順に半角スペースで区切って指定するのが基本です。サンプルコード以下の例では、ボタンをクリックすると段落要素の4辺すべてにマージンが設定されます。実際にコードをコピーしてブラウザで実行し、動作を確認してみてください。<!DOCTYPE