進捗バーのネイティブ 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 ルートパスワードを変更する複数の方法 (推奨)

推薦する

UbuntuのVimにNERDTreeプラグインをインストールする詳細な手順

NERDTree は Vim 用のファイル システム ブラウザーです。このプラグインを使用すると、ユ...

Docker チュートリアル: コンテナの使用 (簡単な例)

Docker を初めて使用する場合は、コンテナの管理を始めるために習得する必要がある基本的なコマン...

CSS3 変換遷移ジッター問題の解決

transform: scale(); スケーリングするとIEブラウザでジッターが発生します変換スケ...

docker ストレージを使用して Exit を実行すると、サーバーへのファイルのアップロードが失敗する問題と解決策

1. 問題の説明Docker コンテナにインストールされているストレージが終了状態になっているため、...

フォーム要素の簡単な実装コードでは登録を例に挙げています

コード実装:コードをコピーコードは次のとおりです。 <!DOCTYPE html> &l...

Vue h関数の使い方の詳しい説明

目次1. 理解2. 使用1. h() パラメータ2. 使い方が簡単3. カウンターケースを実装する4...

UTF-8 ファイルの Unicode 署名 BOM (バイト オーダー マーク) の問題

最近、UTF8 エンコードの中国語 Zen Cart Web サイトをデバッグしているときに奇妙な現...

Docker はすべてのコンテナをバッチ起動して閉じます

Dockerの場合すべてのコンテナコマンドを開始する docker を起動します $(docker ...

LinuxのCPU負荷とCPU使用率の詳細な説明

CPU 負荷と CPU 使用率これらは両方とも、ある程度、マシンの忙しさを反映できます。 CPU 使...

JavaScript イベント委任の原則

目次1. イベント委任とは何ですか? 2. イベント委任の原則3. イベント委託の役割1. イベント...

CSS 完全な視差スクロール効果

1. 何ですか視差スクロールとは、複数の背景レイヤーを異なる速度で動かすことで、3次元のモーション...

Vueのリストレンダリングの詳細な説明

目次1. v-for: 配列の内容を走査する(よく使われる) 2. v-for: オブジェクトのプロ...

MySQL ベースのシーケンス実装方法

チームは新しいフレームを交換しました。すべての新しいビジネスでは、新しいフレームワークと新しいデータ...

Dockerイメージが消える問題を解決する

1. 50と93では鏡像が消える [root@h50 /]# df -h ファイルシステムの使用済み...

Docker で Let's Encrypt から永久無料 SSL 証明書を取得する方法

1. 原因公式の cerbot は面倒すぎます。野生の成長よりもさらに悪い acme.sh の使用は...