2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【CSSアニメーション】css-animationでcssプロパティが効かなかった問題

Last updated at Posted at 2018-02-17

状況

webサイトでよく見る『スクロールすると要素が下からふんわり現れるあれ』を作りたくてcssアニメーションをさせたんだけど、思ったように移動してくれない。
コードこんな感じ。

div {
    opacity: 0;
}
.is-active {
    animation-name: scrolleffect;
    animation-duration: 2s;
}

@keyframes scrolleffect {
    form {
        opacity: 0;
        transform:translateY(-10px); /*動かない*/
    }
    to {
        opacity: 1;
        transform:translateY(0); /*動かない*/
    }
}

ちなみにこっちは動く↓

div {
    opacity: 0;
}
.is-active {
    animation-name: scrolleffect;
    animation-duration: 2s;
}

@keyframes scrolleffect {
    form {
        opacity: 0;
        transform:translateY(0); /*動く*/
    }
    to {
        opacity: 1;
        transform:translateY(-10px); /*動く*/
    }
}

数字が逆の時は動くとか意味わからん。
負の値がダメなのかと思ったけどそうゆうわけでもない。

こんな感じで詰まってたんですが、解決しました。

原因と解決方法

div{
    opacity: 0;
    transform:translateY(-10px); /*追加箇所*/
}
.is-active {
    animation-name: scrolleffect;
    animation-duration: 2s;
}

@keyframes scrolleffect {
    form {
        opacity: 0;
        transform:translateY(-10px);
    }
    to {
        opacity: 1;
        transform:translateY(0);
    }
}

原因は、始まりの値がkeyframes内のfromの値と異なっていたため。
そのためデフォルト値と同じtransform:translateY(0)から始まるものは動くのに、transform:translateY(-10px)から始まるものは動かなかったようです。
divtransform:translateY(-10px)を設定してあげたら動くようになりました。

別にtransformじゃなくても起こり得ますね。
同僚も同じ経験をしたことがあると話していたので、割と陥りやすい罠かもしれません。

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?