JavaScript で円形のプログレスバー効果を実装する

JavaScript で円形のプログレスバー効果を実装する

この記事では、円形のプログレスバー効果を実現するためのJavaScriptの具体的なコードを参考までに紹介します。具体的な内容は次のとおりです。

<!DOCTYPE html>
<html lang="ja">

<ヘッド>
  <メタ文字セット="UTF-8">
  <meta http-equiv="X-UA-compatible" content="IE=edge">
  <meta name="viewport" content="width=デバイス幅、初期スケール=1.0">
  <title>ドキュメント</title>
  <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
  <スタイル>
    .itemwait{
      位置:絶対;
      上: 0;
      下:0;
      左:0;
      右:0;
      マージン: 0 自動; 
    }
    。進捗{
      ストロークダッシュ配列: 251; 
      ストロークダッシュオフセット: 0;
      /* 
      stroke-dasharray: 破線stroke-dashoffset: オフセット間隔*/
    }
  </スタイル>
</head>
<本文>
  <svg 幅="200" 高さ="200" バージョン="1.1" クラス='itemwait'>
    <circle class='progress' cx="100" cy="50" r="40" ストローク="ピンク" ストローク幅="5" 塗りつぶし="透明" />
    <text class='text' x="100" y="50" fill='pink' text-anchor='middle' alignment-baseline='middle'>読み込みを開始</text>
  </svg>
</本文>
<スクリプト非同期タイプ='text/javascript'>
//js コードは下記を参照</script>

</html>

1. ネイティブjs実装

定数ロードArr = [1,2,10,20,40,70,90,100]
  インデックスを0にする
  var タイマー = setInterval(()=>{
    合計を document.querySelector('.progress').getTotalLength() とします。
    進捗状況を document.querySelector('.progress') とします。
    console.log(typeof 合計)
    progress.style.strokeDashoffset = (合計) * (1-loadingArr[インデックス]/100)
    if(インデックス<=読み込みArr.長さ){
      document.querySelector('.text').textContent=`${loadingArr[index]}%`   
  }
    インデックス++
    if(index===loadingArr.length){
      クリアインターバル(タイマー)
      document.querySelector('.text').textContent='読み込みが完了しました'
    }
  },500)

2. jQueryの実装

インデックスを0にする
  var $circle = $('.progress');
  var r = $circle.attr('r');
  var タイマー = setInterval(() => {
    var 合計 = Math.PI * (r * 2);
    var pct = (1-インデックス / 100) * 合計;
    console.log(typeof pct,pct)
    (インデックス<= 100)の場合{
      $('.text').text(`${index}%`);
      $circle.css({ ストロークダッシュオフセット: pct });
    }
    インデックス = インデックス + 10
    (インデックス>100)の場合{
      $('.text').text('読み込みが完了しました');
      クリアインターバル(タイマー)
      
    }
  }, 500)

3. まずは自分のアイデアに従って実装する

定数ロードArr = [1,2,10,20,40,70,90,100]
  インデックスを0にする
  var タイマー = setInterval(()=>{
    合計を document.querySelector('.progress').getTotalLength() とします。
    進捗状況を document.querySelector('.progress') とします。
    console.log(typeof 合計)
    progress.style.strokeDashoffset = (合計) * (1-loadingArr[インデックス]/100)
    $('.text').text(関数(){
      if(インデックス<=読み込みArr.長さ){
       `${loadingArr[index]}%` を返す
      }
    })
    インデックス++
    if(index===loadingArr.length){
      クリアインターバル(タイマー)
      $('.text').text('読み込みが完了しました')
    }
  },500)

要約する

知識ポイント: svg 描画、js ネイティブ操作、jQuery

  • ストロークダシャ配列: 破線
  • ストロークダッシュオフセット: オフセット間隔

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • JavaScript プログレスバーのいくつかのメソッド
  • js でプログレスバーを実装する方法
  • ウェブページの読み込み進捗バーコードを実現するJavaScriptは超シンプルです
  • js プログレスバー実装コード
  • JS プログレスバー効果実装コードの構成
  • JS は円形のプログレスバー(0~100%)の効果を実現します
  • Javascript jquery css で書かれたシンプルなプログレスバーコントロール
  • CSS+JS で実装されたプログレスバー効果
  • js はオーディオ制御プログレスバー機能を実現します
  • PHP で JavaScript とセッションを使用してファイルアップロードの進行状況バー機能を実装する

<<:  MySQLクエリは、フィールドが数値とカンマではないことを指定します。

>>:  Centos8 で Docker を使用して Django プロジェクトをデプロイする詳細なチュートリアル

推薦する

LDAP ユーザー認証を使用するように Linux を構成する方法

私は CentOS に実装された LDAP ユーザー管理を使用しています。これはインターネット上のほ...

Zabbixで指定時間内の変化値を設定する方法の詳細な説明

背景説明: 既存の負荷分散装置には、付加価値状態にある指標があります (増加するだけで減少しないため...

Prometheusコンテナのデプロイメントのための実用的なソリューション

環境ホスト名IPアドレス仕えるプロメテウス192.168.237.137プロメテウス、グラファナノー...

Reactホームページの読み込みが遅い問題のパフォーマンス最適化事例の詳細な説明

しばらくReactを勉強した後、実践してみたいと思います。そこで、個人のブログのウェブサイトを再構築...

Mysql の一時テーブルとパーティションテーブルの違いの詳細な説明

一時テーブルとメモリテーブルメモリ テーブルとは、メモリ エンジンを使用するテーブルを指します。テー...

Vueグローバルカスタム命令の実践 モーダルドラッグ

目次背景実装のアイデア成果を達成する背景最近取り組んでいるプロジェクトは、Vue2 で構築されたプロ...

モバイルレイアウトにvw+remを使用する方法

まだ rem フレキシブルレイアウトを使用していますか?圧縮された js コードの大きなセクションを...

ウォーターフォールフローレイアウトを実装する3つの方法

序文今日、Xianyuを閲覧していたとき、各行の高さが同じではないことに気付きました。調べてみると、...

docker run後、ステータスは常にExitedになります

追加するdocker run -it -name test -d nginx:latest /bin...

jsはキャンバスに基づいて時計コンポーネントを実装します

圧縮アップロード画像、スクラッチカード、ポスター作成、チャートプラグインなど、フロントエンド開発にお...

ポータルサイトのフォーカス画像のデザインに関するいくつかの結論

フォーカス画像は、画像、テキスト、動的なインタラクティブ効果を統合したコンテンツを表示する方法です。...

Linux 編集の開始、停止、再起動の Springboot jar パッケージ スクリプトの例

序文springboot設定ファイルでは、設定ファイルの名前には独自の意味と用途があります。 dev...

JavaScript でプロパティハイジャックを実装する方法 defineProperty

目次序文記述子getとsetの詳細な説明オブジェクトの属性の乗っ取りオブジェクトのすべてのプロパティ...

MySql ファジークエリ JSON キーワード取得ソリューションの例

目次序文オプション1:オプション2:オプション3:オプション4(最終的に採用されたオプション):要約...

最新の超詳細な VMware 仮想マシンのダウンロードとインストールのグラフィック チュートリアル

目次1. 仮想マシンをダウンロードする2. 仮想マシンのインストールVMware のダウンロードとイ...