円形のプログレスバーを生成する html svg
2022-01-28 19:54:39
私のプロジェクトでは、円形のプログレスバーが必要で、リアルタイムの進捗状況を更新する必要がありました。具体的な効果は次のとおりです。
コードはとてもシンプルです。
<svg width="150px" height="150px" class="svg">
<circle r="70" cy="75" cx="75" stroke-width="8" stroke="#EAEFF4" stroke-linejoin=& quot;round" stroke-linecap="round" fill="none"/>
<circle class="progress" r="70" cy="75" cx="75" stroke-width="8" stroke="# 1593FF" stroke-linejoin="round" stroke-linecap="round" fill="none" stroke-dashoffset="0px" ; stroke-dasharray="471px" />
</svg>
デモのために、css アニメーションコントロールから始めてみましょう。
svg {
transform: rotate(-90deg);
}
.progress {
animation: rotate 1500ms linear both;
}
@keyframes rotate {
from {
stroke-dashoffset: 471px;
}
to {
stroke-dashoffset: 0px;
}
}
実装原理
実装は非常に簡単で、svgのstroke-dashoffsetとstroke-dasharrayのプロパティを適用します。
ストロークダッシュアレイ
公式には、ストロークに使用する点線を制御するパターン・パラダイムとして解釈される。すなわち、破線の各セグメントの長さ、すなわち破線の間隔を定義し、数字と数字の間にはカンマまたは空白を入れ、短いストロークとギャップの長さを指定する。奇数の数値が指定された場合、この数値の系列が1回繰り返されるため、偶数の数値となる。
ストロークダッシュオフセット
パス全体のオフセット値を特定する。
破線の間隔とオフセット値を制御することで、様々なラインアニメーションを走らせることができる。もちろん、以下のようにjsで制御することも可能だ。
let path = document.querySelector('#path');
// You can get the length of the path
let len = path.getTotalLength();
path.style.cssText = `stroke-dasharray:"${number}"`;
以上、本記事の全内容をご紹介しましたが、皆様の学習のお役に立てれば幸いです。また、Script Houseをより一層応援していただければ幸いです。
関連
-
HTML5の再適応スキームとビューポート適応の問題点を解説
-
amazeuiのツリーノード自動展開パネルの実装と、最初のツリーノードの選択
-
canvasを用いたキャプチャ表示の実装
-
AmazeUIのダウンロード設定とHelloworldの実装について
-
html5でhotcss.jsを使い、携帯電話の自己適合を実現する方法
-
iframe+postMessageを使ったクロスドメインコミュニケーションのサンプルコード
-
Html5カスタムフォントソリューション
-
キャンバスを使用して、実装の画像にタイル状の透かしを追加することを教える手
-
ウェブアプリのページスクロールラグの解決策を詳しく解説
-
Canvas がクロスドメイン画像を導入し、toDataURL() エラーが発生する。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
HTML5で音声や動画を読み込むためのコード
-
HTML5入門(II)
-
AmazeUI モバイルページ トップナビゲーションバー ヘッダーとサイドナビゲーションバー offCanvas サンプルコード
-
ビデオカバーを設定するH5ビデオポスタープロパティ
-
HTML5 の数値入力コードで整数値のみを受け付けるようにする
-
Html5 webview要素位置決めツールの実装
-
window.openがブラウザにブロックされている場合の解決策を詳しく説明します。
-
iphoneXの前髪スクリーンに合わせたHtml5の簡易実装
-
モバイルhtml5で長押しイベントをシミュレートする方法
-
HTML5でjsonオブジェクトを使用するためのサンプルコード