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 をインストールするためのサンプル コード

推薦する

フロントエンドとバックエンド分離プロジェクトのDockerデプロイメントの実装例

目次1. 環境整備2. イメージを実行する問題を解決するRedis のインストールNginx のイン...

オンラインMySQLオプティマイザの誤判断によって発生した低速クエリイベントを記録する

序文:非常に遅いクエリとリクエストのタイムアウトのアラートを受け取りました。メトリックを通じて My...

NginxにLuaモジュールを追加する方法

luaをインストールする http://luajit.org/download/LuaJIT-2.0...

Vue2.x および Vue3.x のカスタム命令の使用方法とフック関数の原理を理解する

目次Vue2.x の使用法グローバル登録部分登録使用フック機能フック関数のパラメータVue3.x の...

純粋な CSS で中空効果を実現するためのサンプルコード

私は最近、空洞化効果について研究しました。背景クリップ: テキスト背景はテキストの前景色にクリップさ...

Centos 7.4 サーバーの時刻同期設定方法 [NTP サービスに基づく]

この記事では、CentOS 7.4 サーバーで時刻同期を構成する方法について説明します。ご参考までに...

ubuntu16.04でNFSサービスを構築する方法

NFS の紹介NFS (ネットワーク ファイル システム) は、FreeBSD でサポートされている...

Dockerコンテナの紹介

Dockerの概要Docker はオープンソースのソフトウェア展開ソリューションです。 Docker...

YUM を使用して Linux (CentOS 7) に MySQL 5.7.18 をインストールする方法の詳細なチュートリアル

このプロジェクトでは MySQL を使用する必要があります。これまで Windows では常に確実に...

Docker Compose ワンクリック ELK デプロイ方式の実装

インストールFilebeat は、より軽量でより安全なため、Logstash-Forwarder に...

CSS--overflow:hidden のプロジェクト例

以下は、私のプロジェクトでこのプロパティを使用する方法の例です。 (1)激しく透明な浮遊コードをコピ...

VirtualBox CentOS7.7.1908 Python3.8 ビルド Scrapy 開発環境 [グラフィックチュートリアル]

目次環境CentOSをインストールするyum 国内ミラーソースを構成するサードパーティの依存関係をイ...

フロントエンド HTML+CSS+JS を使用してシンプルな TODOLIST 関数を開発する (メモ帳)

目次1. 簡単な紹介2. スクリーンショットを実行する3. コードの紹介4. まとめ1. 簡単な紹介...

Vue検証コードコンポーネントの使い方の詳しい説明

この記事の例では、vue検証コードコンポーネントで使用される具体的な実装コードを参考までに共有してい...

MYSQL スロークエリとログの例の説明

1. はじめにスロークエリログを有効にすると、MySQL は指定された時間を超えるクエリステートメン...