ホームページ >ウェブフロントエンド >CSSチュートリアル >「background-position」を使用してCSSで滑らかなグラデーションアニメーションを実現するにはどうすればよいですか?

「background-position」を使用してCSSで滑らかなグラデーションアニメーションを実現するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-13 17:24:11385ブラウズ

How to Achieve Smooth Gradient Animations in CSS Using `background-position`?

CSS を使用してグラデーションをスムーズにアニメーション化する方法

CSS でのグラデーションのアニメーション化は、特にスムーズな遷移を実現したい場合には難しい場合があります。一貫性のない結果が得られるアプローチの 1 つは、グラデーションの位置を突然変更することです。

次のコードを考えてみましょう。


.animated {<br> 幅: 300px;<br> 高さ: 300px;<br> ボーダー: 1 ピクセル 黒一色;<br> アニメーション: 5 秒無限;<br> アニメーションの方向: 逆;<br> -webkit-animation: 5 秒無限;<br> -webkit-animation-direction : reverse;<br> アニメーション タイミング関数: Linear;<br> -webkit-animation-timing-function: Linear;<br>}</p><p>@keyframes gra {<br> 0% {</p><pre class="brush:php;toolbar:false">background: linear-gradient(135deg, #ff670f 0%, #ff670f 21%, #ffffff 56%, #0eea57 88%);

}
50% {

background: linear-gradient(135deg, #ff670f 0%, #ff670f 10%, #ffffff 40%, #0eea57 60%);

}
100% {

background: linear-gradient(135deg, #ff670f 0%, #ff670f 5%, #ffffff 10%, #0eea57 40%);

}
}


このコードはグラデーションを作成しますアニメーションですが、位置が突然変わるため、途切れ途切れの効果が生じます。この問題を解決するには、キーフレーム内でbackground-positionプロパティを使用して、グラデーションをスムーズに移動できます。

スムーズなグラデーションアニメーションを実現する改良されたCSSコードを次に示します:

< ;ディビジョンclass="snippet-code">
<h1>gradient</h1><p>{</p><pre class="brush:php;toolbar:false">height:300px;
width:300px;
border:1px solid black;
font-size:30px;
background: linear-gradient(130deg, #ff7e00, #ffffff, #5cff00);
background-size: 200% 200%;

-webkit-animation: Animation 5s ease infinite;
-moz-animation: Animation 5s ease infinite;
animation: Animation 5s ease infinite;

}

@-webkit-keyframes アニメーション {

0%{background-position:10% 0%}
50%{background-position:91% 100%}
100%{background-position:10% 0%}

}
@-moz-keyframesアニメーション {

0%{background-position:10% 0%}
50%{background-position:91% 100%}
100%{background-position:10% 0%}

}
@keyframes アニメーション {

0%{background-position:10% 0%}
50%{background-position:91% 100%}
100%{background-position:10% 0%}

}


この中でコード:

  • キーフレーム内にbackground-positionプロパティを設定して、グラデーションの開始位置と終了位置を指定します。
  • background-sizeを使用してグラデーションのサイズを設定しますシームレスな動きを可能にするために要素自体よりも大きい領域。
  • アニメーション プロパティを簡単に利用できます。

これらの原則を適用すると、追加の JavaScript ライブラリやフレームワークを必要とせずに、純粋に CSS を通じて滑らかで視覚的に魅力的なグラデーション アニメーションを作成できます。

以上が「background-position」を使用してCSSで滑らかなグラデーションアニメーションを実現するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:ブラウザの互換性の問題を発生させずにファイル入力要素のスタイルを設定するにはどうすればよいですか?次の記事:ブラウザの互換性の問題を発生させずにファイル入力要素のスタイルを設定するにはどうすればよいですか?

関連記事

続きを見る