css

【CSS】transform-origin

transform-origin は変形させる要素の起点座標を指定します。

指定方法

起点の位置となるx、y、z座標を半角スペースで区切って指定します。

transform-origin:x座標 y座標 z座標;

  • left: 起点のx座標を左端(0%)にします。(x座標の指定に有効)
  • right: 起点のx座標を右端(100%)にします。(x座標の指定に有効)
  • top: 起点のy座標を上端(0%)にします。(y座標の指定に有効)
  • bottom: 起点のy座標を下端(100%)にします。(y座標の指定に有効)
  • center: 起点のx、y座標を中央(50%)にします。
  • 任意の単位: px や % などの単位で指定可能。

% を指定する場合、要素に対する割合になります。pxの場合は、絶対値になります。

サンプル

デフォルト

transform-origin を指定しない場合、起点は要素の中心になります。以下はtransform-originを指定しない場合と指定する場合の動きを確認します。

HTML

<div class='test-box-01'></div>
<div class='test-box-02'></div>

CSS

.test-box-01 {
  width: 100px;
  height: 100px;
  background-color: aqua;
  margin-left: 300px;
  margin-top: 100px;
}

.test-box-01:active {
  transform-origin:50% 50%;
  transform: scaleX(2);
}

.test-box-02 {
  width: 100px;
  height: 100px;
  background-color: aqua;
  margin-left: 300px;
  margin-top: 100px;
}

.test-box-02:active {
  transform: scaleX(2);
}

結果

どちらも要素を押下すると中央を起点とし要素が横に伸びます。

X方向

X方向に動くように指定します。

HTML

<div class='test-box-03'></div>
<div class='test-box-04'></div>

CSS

.test-box-03 {
  width: 100px;
  height: 100px;
  background-color: aqua;
  margin-left: 300px;
  margin-top: 100px;
}

.test-box-03:active {
  transform-origin: 0px;
  transform: scaleX(2);
}

.test-box-04 {
  width: 100px;
  height: 100px;
  background-color: aqua;
  margin-left: 300px;
  margin-top: 100px;
}

.test-box-04:active {
  transform-origin: 20px;
  transform: scaleX(2);
}

結果

一つ目は、起点のx座標を0pxに指定しているので、左端から右へ伸びます。
一つ目は、起点のx座標を20pxに指定しているので、20px右を起点として左右へ伸びます。

最後に

特にありません。

© DeNnie.Lab All Rights Reserved.