CSSのtransitionが効かない原因と対処法【初心者向け】
初心者向けにCSSのtransitionが効かない原因について解説しています。transitionプロパティで要素の変化の時間を調節することが出来て、アニメーションのような形で表示することが出来ます。便利なtransitionですが効かない場合もありますので、書き方のルールを覚えましょう
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
CSSのtransitionが効かない原因について解説します。transitionプロパティを使うと変化の速度を調節することが出来てアニメーションのように表示することが出来ます。
そもそもCSSについてよく分からないという方は、CSSの書き方について解説した記事を読むとさらに理解が深まります。
なお本記事は、TechAcademyのオンラインブートキャンプWebデザイン講座のCSSカリキュラムをもとに執筆しています。
今回は、CSSに関する内容だね!
どういう内容でしょうか?
CSSのtransitionが効かない原因について詳しく説明していくね!
お願いします!
transitionが効かない原因
transitionとは変化するまでの時間などを指定できる、プロパティです。
ボタンにマウスカーソルを乗せたときに、色や大きさなどが変わる時間を設定するときに使われいてアニメーションのように表示することが出来ます。
transitionは以下のように書きます。
セレクタ名 { transition-property:値; }
指定できる値は、
- all:トランジションの適用できる全てのプロパティを指定することができます。
- none:どのプロパティも変化しません。
- プロパティ名:トランジションを適用するプロパティ名を指定します。カンマ区切りで複数指定すること可能です。
transitionが効かない原因の多くは、hoverイベントの所にtransitionを記述してしまうのが多いので、気をつけましょう。
アニメーション的動きが実現できるので、身につけておくと楽しくて便利です。
transitionの書き方
前段にも記述しましたが、必ずhoverイベントの所にtransitionを記述はしないようにしましょう。
hoverイベントを動かそうにも、その要素をhover出来ない状態にしてしまうからです。
HTML
<p>テキスト</p> <p>テキスト</p> <p>テキスト</p>
CSS
p { width:70px; background-color:red; transition-duration: 2s; transition-property:width; } p:hover { width:200px; background-color:blue; }
実際に書いてみよう
ここでは簡単なコードを書きました。
基礎さえ身につけておけば、色々なアニメーション的な動きを実現することができるので下記を参考にしてみてください。
<p>テキスト</p> <p>テキスト</p> <p>テキスト</p> p { width:70px; background-color:red; transition-duration: 2s; transition-property:width; } p:hover { width:200px; background-color:blue; }
解説
pタグに横幅70pxと背景が赤になるよう指定しています。次にtransitionの効果が2秒になるよう指定しています。
続いて、transition-property:widthは、widthのみtransitionが効くようにしています。
:hoverでは、マウスオーバーすると、横幅が200pxになり、背景色が青になるよう指定しています。
監修してくれたメンター
大堀 翔一郎(おおほりしょういちろう)
IT商社にてコーポレートサイト、ブランドサイトのディレクター兼デザイナー兼コーダー。 大学卒業後、WEB制作会社にでデザイナーとして入社し大手企業のサイト制作やブランドサイトの制作に携わってきました。 |
内容分かりやすくて良かったです!
ゆかりちゃんも分からないことがあったら質問してね!
分かりました。ありがとうございます!
TechAcademyでは、初心者でもオリジナルWebサイトを公開できるオンラインブートキャンプWebデザイン講座を開催しています。
挫折しない学習方法を知れる説明動画や、現役エンジニアとのビデオ通話とチャットサポート、学習用カリキュラムを体験できる無料体験も実施しているので、ぜひ参加してみてください。