進捗バーのネイティブ JavaScript 実装

進捗バーのネイティブ JavaScript 実装

進捗バーを実装するためのJavaScriptの具体的なコードは参考までに。具体的な内容は次のとおりです。

プログレスバーの実装の紹介

JavaScript を使用してプログレスバー機能を実装します。

原理:マウス移動イベントを通じてマウスが移動する距離を取得します。

ステップ:

(1) HTMLでのDIVレイアウト (2) CSSスタイルの記述 (3) JavaScriptの特殊効果の記述

HTMLコード

<本文>
 <!-- 全体のボックス -->
 <div id="ボックス">
 <!-- 進捗バー全体 -->
 <div id="進捗">
 <!-- 進捗バーの長さ -->
  <div id="progress_head"></div>
 <!-- 進行状況バーの移動バー -->
 <span id="span"></span>
 <div>
 <!-- データを表示 -->
 <div id="パーセント">0%</div>
 </div>
</本文>

CSS スタイル

<スタイル>
 /* 全体的なスタイル、デフォルトのスタイルを排除*/
 体{
 マージン:0;
 パディング:0;
 }
 #箱{
 位置:相対;
 幅:1000ピクセル;
 高さ:30px;
 マージン:100px 自動;
 } 
 #進捗{
 位置:相対;
 幅:900ピクセル;
 高さ:30px;
 背景:#999999;
 境界線の半径:8px;
 マージン:0 自動; 
 }
 #進捗状況_head{
 幅:0px;
 高さ:100%;
 左上の境界線の半径:8px;
 左下の境界線の半径:8px;
 背景:#9933CC;
 
 }
 スパン{
 位置:絶対;
 幅:20px;
 高さ:38px;
 背景:#9933CC;
 上:-4px;
 左:0px;
 カーソル:ポインタ;
 }
 #パーセンテージ{
 位置:絶対;
 行の高さ:30px;
 テキスト配置:中央;
 右:-44px;
 トップ:0;
 }
 
 
</スタイル>

JavaScript コード

<スクリプト>

 //js ノードを取得 var oProgress = document.getElementById('progress');
 var oProgress_head = document.getElementById('progress_head');
 var oSpan = document.getElementById('span');
 var oPercentage = document.getElementById('パーセンテージ')

 //マウスダウンイベントを追加 oSpan.onmousedown=function(event){
 
 var イベント = イベント || window.event;
 var x = event.clientX-oSpan.offsetLeft;

 document.onmousemove=関数(){
 
 var イベント = イベント || window.event;
 var wX = event.clientX-x;
 
 
 wX<0の場合
 {
  0 の場合
 }それ以外の場合(wX>=oProgress.offsetWidth-20)
 {
  wX = oProgress.offsetWidth - 20;
 }
 oProgress_head.style.width=wX+'px';
 oSpan.style.left=wX+'px';
 
 oPercentage.innerHTML=parseInt(wX/(oProgress.offsetWidth-20)*100)+'%';
 
 false を返します。
 };
 
 document.onmouseup=関数(){
 
 ドキュメント.onmousemove=null; 
 };
 
 }; 
</スクリプト>

レンダリング

全体的なコード

<!DOCTYPE>
<html lang="ja">
<ヘッド>
 <meta http-equiv="コンテンツタイプ" コンテンツ="text/html; charset=utf-8" />
 <title>進捗バー</title>
 <スタイル>
 /* 全体的なスタイル、デフォルトのスタイルを排除*/
 体{
 マージン:0;
 パディング:0;
 }
 #箱{
 位置:相対;
 幅:1000ピクセル;
 高さ:30px;
 マージン:100px 自動;
 } 
 #進捗{
 位置:相対;
 幅:900ピクセル;
 高さ:30px;
 背景:#999999;
 境界線の半径:8px;
 マージン:0 自動; 
 }
 #進捗状況_head{
 幅:0px;
 高さ:100%;
 左上の境界線の半径:8px;
 左下の境界線の半径:8px;
 背景:#9933CC;
 
 }
 スパン{
 位置:絶対;
 幅:20px;
 高さ:38px;
 背景:#9933CC;
 上:-4px;
 左:0px;
 カーソル:ポインタ;
 }
 #パーセンテージ{
 位置:絶対;
 行の高さ:30px;
 テキスト配置:中央;
 右:-44px;
 トップ:0;
 }
 
 
 </スタイル>
</head>
<本文>

 <!-- 全体のボックス -->
 <div id="ボックス">
 <!-- 進捗バー全体 -->
 <div id="進捗">
 <!-- 進捗バーの長さ -->
  <div id="progress_head"></div>
 <!-- 進行状況バーの移動バー -->
 <span id="span"></span>
 <div>
 <!-- データを表示 -->
 <div id="パーセント">0%</div>
 </div>

</本文>
</html>
<スクリプト>

 //js ノードを取得 var oProgress = document.getElementById('progress');
 var oProgress_head = document.getElementById('progress_head');
 var oSpan = document.getElementById('span');
 var oPercentage = document.getElementById('パーセンテージ')

 //マウスダウンイベントを追加 oSpan.onmousedown=function(event){
 
 var イベント = イベント || window.event;
 var x = event.clientX-oSpan.offsetLeft;

 document.onmousemove=関数(){
 
 var イベント = イベント || window.event;
 var wX = event.clientX-x;
 
 
 wX<0の場合
 {
  0 の場合
 }それ以外の場合(wX>=oProgress.offsetWidth-20)
 {
  wX = oProgress.offsetWidth - 20;
 }
 oProgress_head.style.width=wX+'px';
 oSpan.style.left=wX+'px';
 
 oPercentage.innerHTML=parseInt(wX/(oProgress.offsetWidth-20)*100)+'%';
 
 
 false を返します。
 };
 
 document.onmouseup=関数(){
 
 ドキュメント.onmousemove=null;
 
 };
 
 };
 
</スクリプト>

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

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

<<:  VMware vSphere 6.7 (ESXI 6.7) のグラフィック インストール手順

>>:  MySQL ルートパスワードを変更する複数の方法 (推奨)

推薦する

MySQLは、where in()順序ソートを実装するためにfind_in_set()関数を使用します。

この記事では、MySQL で find_in_set() 関数を使用して where in() の順...

大規模なウェブサイトアーキテクチャを設計・構築する際に考慮すべき10の課題

ここでは、PHP、JSP、または .NET 環境については説明しません。アーキテクチャの観点から問題...

Windows が MySQL サービスを開始できず、エラー 1067 を報告する場合の解決策

突然、MySQLにログインすると、アクセスが拒否されたか、データベースに接続できないと表示されました...

nginx をコンパイルしてインストールした後、スムーズに nginx をアップグレードする方法

nginx をコンパイルしてインストールし、一定期間使用した後、現在のバージョンに脆弱性があることや...

テキストエリアをレイアウトしたときにテキストが左下にあり、サイズを変更できない問題の解決策

2つの小さな問題ですが、長い間私を悩ませていました。最初の質問テキストエリアの左側のテキストは常にテ...

Dockerコンテナアプリケーションログの表示方法

docker アタッチコマンドdocker attach [options] 容器実行中のコンテナに...

Docker を使用して nginx で tomcat クラスターを構築する方法 (画像とテキスト付き)

まず、Tomcatフォルダを作成します。Dockerの設定を容易にするために、ルートディレクトリに直...

重複リクエストを削除するAxiosのソリューションについての簡単な説明

目次1. 重複したリクエストをキャンセルする2. すべてのリクエストをクリーンアップするこのソリュー...

画像ボタン送信とフォーム繰り返し送信の問題に関する議論

多くの場合、フォームを美しくするために、送信ボタンが画像に置き換えられます。ただし、細部に注意を払わ...

SSM VUE Axios の詳細な説明

目次SQL ログを表示するにはどうすればいいですか? ? SpringMVC でのパラメータ渡しの説...

HTMLはテキスト行のインターセプトの実装原理とコードを超えています

複数行を超えるテキストをインターセプトするための HTML コードは次のとおりです。 HTML:コー...

emとは?emとpxの紹介と変換方法

それは何ですか? em はフォントの高さを指し、どのブラウザでもデフォルトのフォントの高さは 16 ...

Docker コンテナは実行後に終了します (実行を継続する方法)

現象Dockerコンテナを起動する docker run –name [コンテナ名] [コンテナID...

JSのバイナリファミリーについての簡単な説明

目次概要ブロブBlob の動作BLOB ダウンロード ファイルブロブ画像のローカル表示BLOB ファ...

垂直方向の中央揃えをエレガントに実現する方法を教えます(推奨)

序文CSS で水平方向と垂直方向に中央揃えする方法はたくさんあります。この記事で紹介する方法は非常に...