クールな充電アニメーションを実現する純粋なCSS

クールな充電アニメーションを実現する純粋なCSS

CSS のみを使用してどのような充電アニメーション効果を作成できるかを見てみましょう。

バッテリーを描く

もちろん、バッテリーを充電するには、まず CSS を使用してバッテリーを描画する必要があります。これは難しくなく、描画するだけです。

ああ、それだ、かろうじて。バッテリーが手に入ったので、直接充電してみましょう。最も単純なアニメーションは、バッテリー全体を色で塗りつぶすことです。

メソッドは多数ありますが、コードは非常にシンプルです。効果を見てみましょう。

味もそれなりにあるので、要求が厳しくなければこれで十分でしょう。青いグラデーションは電力レベルを示し、充電アニメーションはカラーブロックの変位アニメーションによって実現されます。しかし、何かが欠けているような気が常にします。

影と色のバリエーションを追加する

最適化を続行する場合は、いくつかの詳細を追加する必要があります。

バッテリー残量が少ない場合は通常、バッテリーレベルが赤で表示され、バッテリー残量が多い場合は緑で表示されることはご存じのとおりです。カラー ブロック全体に影の変化をいくつか追加して、呼吸しているような感覚を与え、充電効果が実際に動いているように見えるようにします。

知識ポイント

この時点で、実際にわかっている知識は 1 つだけです。

フィルター: hue-rotate() を使用して、グラデーションカラーの色の変化をアニメーション化します。

グラデーション カラーを直接アニメーション化することはできないため、ここではフィルターを使用して色相を調整し、グラデーション カラー変換アニメーションを実現します。

上記の例の完全なデモ: CodePen デモ - バッテリーアニメーション 1

波を追加する

はい、これはほんの小さなマイルストーンです。これからさらに一歩進んでいきます。バッテリーインジケーターの上部は直線で、少し退屈に見えます。ここを修正できます。上部の直線を波状の曲線に変更できれば、よりリアルな効果が得られます。

変換後の効果:

CSS を使用してこの波のスクロール効果を実現するのは、実際には単なるトリックです。詳細については、以前に書いたこの記事を参照してください。

純粋な CSS で波の効果を実現!

知識ポイント

ここでの知識ポイントの 1 つは、CSS を使用して単純な波の効果を実現することです。これはトリックによって実現されます。画像を見るだけで理解できます。

上記の例の完全なデモ: CodePen デモ - バッテリーアニメーション 2

さて、この時点で、上記の効果にデジタル変更を加えると、すでにかなり良い効果が得られます。もちろん、上記の効果はまだ非常に CSS らしく、一目見ただけで CSS を使用して実現できることがわかります。

強力な CSS フィルターを使用して Android の充電アニメーション効果を実現します

下のものはどうですか?

Android スマートフォンを使用している学生の方は、この現象によくご存じでしょう。これは、Android スマートフォンを充電しているときの様子です。これを見て気になったのですが、CSS を使用してこれを行うことはできますか?

いくつか試してみたところ、CSS を使用するとこのアニメーション効果を非常にうまくシミュレートできることがわかりました。

上記の GIF に記録されている効果は、CSS を使用して完全にシミュレートされています。

上記の例の完全なデモ: HuaWei バッテリー充電アニメーション

知識ポイント

知識のポイントを分解すると、最も重要なことは、実際には 2 つのfilter: contrast()filter: blur()を使用することです。これにより、この融合効果を非常にうまく実現できます。

2 つのフィルターを別々に取り出します。それぞれの機能は次のとおりです。

filter: blur() : 画像にガウスぼかし効果を設定します。 filter: contrast() : 画像のコントラストを調整します。

しかし、それらが「融合」すると、素晴らしい融合現象が起こりました。

簡単な例を見てみましょう:

2 つの円が交差する過程を注意深く見てください。エッジが互いに接触すると、境界融合効果が生成されます。ガウスぼかしのぼやけたエッジはコントラスト フィルターによって除去され、ガウスぼかしを使用して融合効果が実現されます。

もちろん、この効果については以前の記事でも何度も触れてきました。詳細については、以下をご覧ください。

CSS フレイム? CSS フィルターのヒントと知らない詳細

色変換

もちろん、ここで色の変更を加えることもでき、その効果も非常に良好です。

上記の例の完全なデモ: HuaWei バッテリー充電アニメーション

見落としがちなポイント

filter: blur()およびfilter: contrast()プロパティの値を調整することで、アニメーション効果は実際に大幅に変化する可能性があり、優れた効果を得るには継続的なデバッグが必要です。もちろん、経験もこれには非常に重要な役割を果たします。結局のところ、さらに試してみる必要があります。

やっと

この記事では、徐々に効果が増加する充電アニメーションをいくつか紹介します。この記事では、最も重要な知識ポイントのみを指摘します。ただし、実際の出力プロセスには、この記事では触れられていない細かい点が多数あります。興味のある学生は、デモをクリックしてソースコードをよく確認するか、自分で実装してください。

素晴らしい CSS 技術記事が私の Github -- iCSS に集められています。これらは継続的に更新されています。星をクリックして購読し、収集してください。

さて、この記事はこれで終わりです。お役に立てれば幸いです:)

ご質問やご提案がございましたら、お気軽にご連絡ください。これはオリジナルの記事であり、私の文章力には限界があります。記事に誤りがある場合はお知らせください。

<<:  JavaScript を使用して簡単なアルゴリズムを実行する方法

>>:  INS と DEL を使用してドキュメントの変更をマークする方法の詳細な説明

推薦する

CSS シャドウ効果の比較: ドロップシャドウとボックスシャドウ

Drop-shadow と box-shadow はどちらも影効果(ハロー効果)のための CSS プ...

JSはreduce()メソッドを使用してツリー構造データを処理します

目次意味文法例1. 初期値initが渡されない2. 初期値を渡す場合3. アレイの重複排除4. Re...

nginx における proxy_pass のさまざまな使用法の詳細な説明

目次プロキシ転送ルール最初のもの: 2番目のタイプ: 3番目のタイプ: 4番目のタイプ: 5番目:プ...

長いデータを HTML で表示するときに処理する方法

HTML で長いデータを表示する場合、マウスをその上に移動するとデータを切り捨てて完全なデータを表示...

Vue3ライフサイクル関数とメソッドの詳細な説明

1. 概要いわゆるライフサイクル機能とは、特定の条件下で自動的にトリガーされる機能です。 2. VU...

CentOS 6.9 で glibc ダイナミック ライブラリをアップグレードする詳細なプロセス

glibc は、gnu によってリリースされた libc ライブラリ、つまり c ランタイム ライブ...

VirtualBox でのホストオンリー + NAT モードのネットワーク構成

VirtualBoxのHost Only+NATモードのネットワーク構成は参考用です。具体的な内容は...

MySQL でよく使われる型変換関数の概要 (推奨)

1. Concat関数。よく使用される接続文字列: concat 関数。たとえば、SQLクエリ条件...

CSS ピックアップ矢印、カタログ、アイコン実装コード

1. CSS その他のアイコンアイコンを作成するには 3 つの方法があります。写真css (小さな矢...

MySQLの実行プロセスとシーケンスについての簡単な説明

目次1:mysql実行プロセス1.1: コネクタ1.2: キャッシュ1.3: アナライザー1.4: ...

クラスタrpmを使用してMySQLをインストールするための詳細な手順

MySQLデータベースをインストールするa) MySQL ソースインストールパッケージをダウンロード...

MySQL 8.0.16 winx64 のインストールと設定方法のグラフィックチュートリアル

最近、データベースについて学び始めました。最初にやったことは、データベースとは何か、データベースとデ...

Docker Compose で利用可能な環境変数の詳細な説明

Compose のいくつかの部分は、何らかの方法で環境変数を扱います。このチュートリアルは、必要な情...

MySQL テーブルにおける非主キー列オーバーフロー監視の詳細な説明

今日もまた罠に落ちてしまいました。 私は以前MySQLの主キーオーバーフローに遭遇したことがあり、そ...

keepalived+nginx の高可用性を実装する方法の例

1. keepalived の紹介Keepalived は、もともと LVS クラスタ システム内の...