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

推薦する

Vue はネストされたルーティングメソッドの例を実装します

1. ネストされたルーティングはサブルーティングとも呼ばれます。実際のアプリケーションでは、通常、ネ...

25 個の CSS フレームワーク、ツール、ソフトウェア、テンプレートを共有

スプライトカウダウンロード CSS リントダウンロード プレフィックスダウンロード 1140px C...

衝突検出を実装するためのjs

この記事の例では、衝突検出を実装するためのjsの具体的なコードを参考までに共有しています。具体的な内...

HTML テーブルタグチュートリアル (19): 行タグ

<TR> タグの属性は、次の表に示すように、テーブル内の各行のプロパティを設定するために...

セマンティック XHTML タグの紹介

まず最初に指摘しておきたいのは、人間は視覚的な区分を通じてコン​​テンツの意味を判断できるが、検索エ...

Linux inotifyリアルタイムバックアップの実装方法の詳細説明

リアルタイム レプリケーションは、企業データをバックアップする最も重要な方法です。主に、ユーザーが送...

show processlist コマンドによる MySQL パフォーマンス検査の説明

show processlist コマンドは非常に便利です。MySQL の実行が 50% 以上になる...

IDEA を使用して Tomcat を設定し、JSP ファイルを作成する方法

idea を使用して JSP ファイルを書き込む前に、jdk 環境 (ここでは説明しません) と対応...

node-media-serverを使用してシンプルなストリーミングメディアサーバーを構築する

node-media-server を使用するプロセスの一部を記録します。この記事の環境はWindo...

MySQL エラー番号 1129 の解決方法

SQLyog が MySQL に接続する際にエラー番号 1129 が発生します: mysql エラー...

MySQL mysqldump の使い方の詳しい説明

1. mysqldump の紹介mysqldump は、MySQL に付属する論理バックアップ ツー...

MySQL イベント スケジューラに関するよくある話 (必読)

概要MySQL には独自のイベント スケジューラもあり、これは Linux の crontab ジョ...

HTML フォーマットの json のサンプルコード

さっそく、コードを直接投稿します。具体的なコードは次のとおりです。 <!DOCTYPE htm...

Vue+ElementUI で超大規模なフォーム例を処理する方法

最近、社内の業務調整により、以前の超長文のロジックが大幅に変更されたため、リファクタリングする予定で...

MySQLインデックスの詳細な分析

序文インデックスの選択はオプティマイザ段階の作業であることはわかっていますが、オプティマイザは万能で...