Web には一般的な読み込みアイコンが 2 つあります。1 つは iOS の「菊」、もう 1 つは Android の「リング」です。今日は SVG を使用して Android の「リング」アニメーションを実装し、次のクラスでは iOS の「菊」を実装します。 注: GIFのフレーム数が少ないため、実際のアニメーション効果は非常にスムーズです。 の。 xml(svg) <svg 幅="36" 高さ="36" ビューボックス="0 0 50 50" クラス="a-loading-android"> <circle cx="25" cy="25" r="20" fill="none"stroke="currentColor"stroke-width="5"></circle> </svg> まず、SVG キャンバスのサイズを50x50と定義し、ブラウザで36x36にズームします (この 36 は実際のニーズに合わせて調整できます)。リングの中心座標を25,25 、半径を 20 (円周は約 125 で、後で使用します) と定義します。色は、親要素の color 属性の値を取得するためにcurrentColorとし、リングの幅は 5 ピクセルとします。CSS を書く前に効果を見てみましょう。 SCSS .a-ロード中{ &-アンドロイド{ アニメーション: 2 秒の線形無限回転; 変換の原点: 中心 中心; >円{ 表示: インラインブロック; アニメーション: dash 1500ms easy-in-out infinite; stroke-linecap: round; // 終点は円です color: currentColor; } @keyframes 回転 { 100% { 変換: 回転(360度); } } @keyframes ダッシュ { 0% { ストロークダッシュ配列: 1, 200; } 50% { ストロークダッシュ配列: 100, 200; ストロークダッシュオフセット: -45; } 100% { ストロークダッシュ配列: 100, 200; ストロークダッシュオフセット: -124; } } } } ストロークダシャ配列 まず、破線を定義するために使用される リングも点線で表され、単位実線部分の長さがリングの円周内で変化するとしたら、これは実現できるのではないでしょうか(ハーフリング/フルリングなど)。以下は : 注: ここでの 値はリングの円周よりも大きい限り、破線間のギャップを表すように任意に定義されます。 ストローク-ダッシュオフセット オフセット。値が正の場合、破線は反時計回りに後退し、値が負の場合、時計回りに前進します (左の図のstroke-dashoffset:0 では、リングの開始点は 3 時の位置にあり、右の図で -10 に設定すると、リングの開始点は時計回りに距離だけオフセットされます)。 アニメーションでは、リングの長さが長くなり、尾の長さが短くなるため、 成し遂げる。 アニメーションにおける3つの重要な瞬間 0% 瞬間 アニメーションが 1 サイクル後に突然にならないように、リングに 1 つのポイントのみが表示されるようにします (効果を比較するには、0 に変更します)。 50% 瞬間 リングがリングの 80% 表示されるように、実線の長さを 100 (125*0.8、125 は円周) に設定し、 100%の瞬間 0% 状態と同じポイント状態に戻ると、アニメーション サイクルは急激にはなりませんが、50% から 100% までのアニメーションは単なる「末尾の収縮」になります。そのため、これを実現するために、 全体的なローテーション Android システムのアニメーションと一致させるために、ボディ全体も回転します。ここでのコードは比較的単純なので、繰り返しません。 アニメーションプロパティの拡張 CSS したがって、実際に上記のアニメーションを拡張して、回転と色の変更を同時に実行することができます。 &-アンドロイド{ アニメーション: 2 秒の線形無限回転; 変換の原点: 中心 中心; >円{ 表示: インラインブロック; // 色変更コードアニメーションを追加します: color 6s easy-in-out infinite、 dash 1.5s easy-in-out infinite; ストロークの線のサイズ: 丸い; 色: 現在の色; } @keyframes 回転 { 100% { 変換: 回転(360度); } } @keyframes ダッシュ { 0% { ストロークダッシュ配列: 1, 200; } 50% { ストロークダッシュ配列: 100, 200; ストロークダッシュオフセット: -45; } 100% { ストロークダッシュ配列: 100, 200; ストロークダッシュオフセット: -124; } } @キーフレームの色{ 0%、 100% { ストローク: #6b5c5b; } 40% { ストローク: #0057e7; } 66% { ストローク: #008744; } 80%、 90% { ストローク: #ffa700; } } } この記事のコードは、Vue フレームワークであるiviewを参照しています。 要約する 以上が、CSS を使用して Android システムの読み込みアニメーションを実装する方法についてご紹介したものです。お役に立てれば幸いです。ご質問がある場合は、メッセージを残していただければ、すぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。 |
<<: JavaScript の toLocaleString() での時間フォーマットに関する新しいアイデア
>>: MySQL レプリケーション問題の 3 つのパラメータの分析
WEB開発は主に2つのインタラクション(B/Sデータ)から構成されますブラウザ: 1html、css...
問題の説明:構造:テストには2つのフィールドがあります。これらは col1 と col2 で、どちら...
目次1. 現状2. JSでCADグラフィックを作成および変更する2.1 サポートされているCADエン...
目次WXS レスポンス イベントプランAページ構造とスタイルWXS イベントコールバック関数WXS ...
この記事では、CSS スクロールバー セレクターを紹介し、Webkit ブラウザーと IE ブラウザ...
目次Dockerカスタムネットワーク1. カスタムネットワークの紹介2. カスタムネットワークを作成...
1.マージンとは何ですか?マージンは、要素の周囲のスペースの間隔を制御するために使用され、視覚的にス...
目次概要オブジェクトの残り属性オブジェクトの拡張プロパティオブジェクトの浅いコピーを作成するkeyo...
一般的に言えば、コンテナが起動した後、ポート マッピングを通じてコンテナが提供するサービスを使用...
Dockerは複数のSpringbootを実行する1番目: ポートマッピング 2番目: メモリサイズ...
アクセス数が増えると、MySQL データベースへの負荷が増大します。MySQL アーキテクチャを使用...
Web デザインでは、Web サイトに表示されるデータの構造とコンテンツをユーザーが明確に理解できる...
1. 複数の国境[1]背景: ボックスシャドウ、アウトライン使用シナリオの多様性を考慮すると、複数の...
序文日常の開発では、テキストの水平スクロール効果(一般にカルーセルと呼ばれる)によく遭遇します。これ...
1. 行の形式は何ですか? MySQL の行形式の設定は次のように表示されます。 実際、MySQL ...