CSSアニメの100%の指定がわからん

ここ3日ほど、学校の課題で作ったcssアニメが、
どうしても理解できずに悩んでました。
アニメはこれです。

See the Pen グラデーションで変わるcssアニメ by サクライ (@genzazurow) on CodePen.


問題の場所はここ

 -webkit-mask-position: -100% -100%;
 -webkit-mask-size: 200% 200%;
 animation: slide 8s 2s linear infinite;}

@keyframes slide {
 0% {
  -webkit-mask-position: -100% -100%
 }

 40% {
  -webkit-mask-position: 100% 100%;

position :0 0;ならば左上、
position:-100% -100%;はさらに画像一個分左上が指定位置なので、
-100% -100%からスタートして100% 100%の位置まで動くのならば、
左から右へとマスクが動くはず。当然上から下へと。

ところがどうだろう?
実際は右下から左上へとマスクが動いている。

なんで?

これがかなり悩みました。
何をどう変えても理解できなかったです。

原因は

mask-position:●% ●%;とは
隠される画像の●% ●%の位置と、隠す画像の●% ●%の位置を合わせる

ということらしい。

つまり、mask-position:0 100%;なら
隠される画像の(0 100%)の位置に
隠す画像の(0 100%)の位置を重ねてることになる訳ですな。



はは~~ん、これだと隠す側の画像が大きいときに
場所の指定がやりやすい訳か。

background-imege:も同じ理屈だから、
中央揃えなんかが簡単な訳だ。

で、今回の場合、隠す側の画像が倍になってます
mask-size: 200% 200%;
これで mask-position: -100% -100%はどうなっているかというと、

こうですな。
つまり、隠される画像の右下に配置されるわけです。
で、ここからアニメーションで

このように重なるところに移動して
右下から左上へと移動しているんですね。


なるほど~~でした。

参考サイト
ほぼほぼ4こいち


かなり悩んだことだったので、
記事にして残します。

Follow me!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA