CSS Transforms (2D) - メモログの続きで、transform-originについて。回転などtransformの変換はデフォルトでは要素の中心(50% 50%)を軸に行われる。たとえば、rotate(45deg)の場合は以下のような感じ
サンプル
サンプル
transform-originのプロパティではその軸の場所を変更することができる。transform-originを100% 100%に設定すると、下記のような感じになる。要素の右下を中心に回転する。
サンプル
サンプル
transform-originを150% 150%などに設定することで、要素の外側に軸を設定することもできる。ので、たとえば下記のようなアニメーションをすることもできる
@-moz-keyframes rotate { from { -moz-transform: rotate(0deg); } to { -moz-transform: rotate(360deg); } } @-webkit-keyframes rotate { from { -webkit-transform: rotate(0deg); } to { -webkit-transform: rotate(360deg); } } @-o-keyframes rotate { from { -o-transform: rotate(0deg); } to { -o-transform: rotate(360deg); } } @keyframes rotate { from { -o-transform: rotate(0deg); } to { -o-transform: rotate(360deg); } } .sample { font-size: 0.5em; width: 40px; height: 40px; border: 1px solid #ddd; background: #f0f0f0; -moz-transform-origin: 150% 150%; -moz-animation-duration: 2s; -moz-animation-name: rotate; -moz-animation-iteration-count: infinite; -moz-animation-timing-function: linear; -webkit-transform-origin: 150% 150%; -webkit-animation-duration: 2s; -webkit-animation-name: rotate; -webkit-animation-iteration-count: infinite; -webkit-animation-timing-function: linear; -ms-transform-origin: 150% 150%; -ms-animation-duration: 2s; -ms-animation-name: rotate; -ms-animation-iteration-count: infinite; -ms-animation-timing-function: linear; -o-transform-origin: 150% 150%; -o-animation-duration: 2s; -o-animation-name: rotate; -o-animation-iteration-count: infinite; -o-animation-timing-function: linear; transform-origin: 150% 150%; animation-duration: 2s; animation-name: rotate; animation-iteration-count: infinite; animation-timing-function: linear; }
サンプル
1 | @-moz-keyframes rotate { |