JavaScript でドラッグ可能なプログレスバーを実装する

JavaScript でドラッグ可能なプログレスバーを実装する

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

1. プログレスバーの実装

<html>
<ヘッド>
  <meta http-equiv="X-UA-compatible" content="IE=edge">
  <meta name="viewport" content="width=デバイス幅、初期スケール=1">
  <メタ文字セット="UTF-8">
<title>ドラッグ可能なプログレスバー</title>
<スタイル>
体{
 マージン:50px; ; 
}

。箱 {
  幅:49%;
  高さ:3レム;
  行の高さ:3rem;
  フロート:左;
}
.boxDesc {
  幅:50%;
  高さ:3レム;
  行の高さ:0.3rem;
  フロート:左;
}

.スケールスパン{
 背景:url(scroll.gif) 繰り返しなし; 
 幅:8px;
 高さ:16px; 
 位置:絶対; 
 左:-2px;
 上:-5px;
 カーソル:ポインタ;
}
.scale{ background-repeat: repeat-x; background-position: 0 100%; background-color: #E4E4E4; border-left: 1px #83BBD9 solid; width: 100%; height: 10px; position: relative; font-size: 0px; border-radius: 3px; }
.scale div{ background-repeat: repeat-x; background-color: green; position: absolute; height: 10px; left: 0; bottom: 0; }
li{
 フォントサイズ:12px;
 行の高さ:50px;
 位置:相対; 
 高さ:50px; 
 リストスタイル:なし;
}
</スタイル>
</head>
<本文>
<ul style='width:100%;margin-top:15rem;'>
 <li>
    <div クラス = 'ボックス'>
  <div class="scale" id="bar">
   <div></div>
   <span id="btn"></span>
  </div> 
    </div>
  <div class='boxDesc'>
  <span id="title">0</span>
  </div>
 </li>

</ul>
</本文>
<スクリプト>
スケール = 関数 (btn、バー、タイトル) {
 this.btn=ドキュメント.getElementById(btn);
 this.bar=ドキュメントの要素IDを取得する(bar);
 this.title=ドキュメントのタイトルの取得要素 ID を取得します。
 this.step=this.bar.getElementsByTagName("DIV")[0];
 これを初期化します。
};
スケール.プロトタイプ={
 初期化:関数(){
  var f=this,g=ドキュメント,b=ウィンドウ,m=Math;
  f.btn.onmousedown=関数(e){
   var x = (e||b.event).clientX;
   var l = this.offsetLeft;
   var max=f.bar.offsetWidth-this.offsetWidth;
   g.onmousemove=関数(e){
    var thisX=(e||b.event).clientX;
    var to=m.min(max,m.max(-2,l+(thisX-x)));
    f.btn.style.left=to+'px';
    f.ondrag(m.round(m.max(0,to/max)*100),to);
    b.getSelection ? b.getSelection().removeAllRanges() : g.selection.empty();
   };
   g.onmouseup = 新しい関数('this.οnmοusemοve=null');
  };
 },
 ondrag:関数 (pos,x){
  this.step.style.width=Math.max(0,x)+'px';
  this.title.innerHTML=pos+'%';
 }
}
新しいスケール('btn','bar','title');
</スクリプト>
</html>

2. 達成効果

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

以下もご興味があるかもしれません:
  • JSはプログレスバーをドラッグして要素の透明度を変更することを実装しています
  • JavaScript は水平方向のプログレスバーのドラッグ効果を実装します
  • スライドプログレスバー効果を実現する js
  • JSは円形のプログレスバーのドラッグとスライドを実装します

<<:  mysql インストーラ コミュニティ 8.0.12.0 インストール グラフィック チュートリアル

>>:  Docker で ElasticSearch と Kibana をインストールするためのサンプル コード

推薦する

Windows 10 で Hyper-V サービスをシャットダウンするいくつかの方法

VMware Workstation を使用して Windows 10 で仮想マシンを開くと、VMw...

MySQL でファイルデータをインポートする際の 1290 エラーの解決方法

エラーシナリオcmd の mysql コマンドを使用して、学生情報テーブルにデータを追加します。デー...

MySQL データベースで機密データの暗号化と復号化を実装する方法

目次1. 準備2. MySQL暗号化関数方式2.1 MySQL 暗号化2.2 MYSQL 復号化3....

Tomcat のインストール後に起こりうる問題の紹介

1. Tomcatサービスが開いていませんブラウザのアドレスバーにlocalhost:8080と入力...

Kafka の Docker デプロイメントと Spring Kafka 実装

この記事は主にDockerによるKafkaのデプロイとSpring Kafkaの実装について紹介しま...

Ubuntu Linux に Git と GitHub をインストールして使用する

Git 入門Git は、Linux(R) カーネル開発の管理を支援するために 2005 年に Lin...

HTML で div+CSS を使用してシンプルな矢印アイコンを実装するコード

ウェブデザインでは、ウェブページを美しく見せるために矢印を装飾としてよく使用します。現在、多くのウェ...

Innodb で MySQL の 2T テーブルをすばやく削除する方法の例

序文この記事は主に、MySQL の Innodb で 2T の大きなテーブルをすばやく削除する方法に...

MySQL マスター/スレーブ ステータスを監視するシェル スクリプト

Linuxでシェルスクリプトを共有して、MySQLのマスタースレーブ状態を監視し、エンタープライズW...

IEウェブページのポップアップウィンドウの共通パラメータは自分で設定できます

ポップアップは、現在のウィンドウにメニューツールバーがあるかどうかとは関係ありません。ページにスクリ...

水平スクロールバーを実装する2つの方法の例

序文:プロジェクトの開発中に、1 行にナビゲーション バーが多すぎる場合に水平スクロール バーを実装...

Vue パッケージ化後の空白ページの解決策

1. vue-cli がプロジェクト パッケージを作成した後にページが空白になる問題の解決方法コマン...

JS配列の組み込みトラバーサルメソッドとその違いについての簡単な説明

目次forEach() (ES6) メソッドmap() (ES6) メソッドflatMap() メソ...

Vue でルートをジャンプする方法をご存知ですか?

目次最初の方法: router-link (宣言型ルーティング) 2番目の方法: router.pu...

LinuxスレッドのPID(TID、LWP)を取得するいくつかの方法の詳細な説明

Linux C/C++ では、スレッド レベルの操作は通常、pthread ライブラリを通じて実行さ...