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

推薦する

MySQL インデックスが失敗するいくつかの状況の概要

1. インデックスはnull値を保存しないより正確に言うと、単一列インデックスには null 値は格...

よくある HTML タグの記述エラー

HTML Police がコードを調べて意味のないタグをすべて見つけ出すので、注意を払う必要がありま...

JavaScript クロージャの説明

目次1. クロージャとは何ですか? 1.2 クロージャのメモ化: 関数は定義された環境を記憶する1....

CocosCreator 学習モジュールスクリプト

Cocos Creator モジュラースクリプトCocos Creator を使用すると、コードを複...

LinuxでMySQLのリモートアクセス権を有効にし、ファイアウォールでポート3306を開きます。

mysqlのリモートアクセス権を有効にするデフォルトでは、MySQL ユーザーにはリモート アクセ...

MySQL テーブルデータのインポートとエクスポートの例

この記事では、MySQL テーブル データのインポートおよびエクスポート操作について説明します。ご参...

Ubuntu 20.04 LTS で Java 開発環境を構成する

Java開発キットjdkをダウンロードするJDK のダウンロード アドレスはhttp://www.o...

同じページを動的にロードするための Vue ルーティングリスニングの例

目次シナリオ分析発達要約するシナリオ分析システムでは、1 つのモジュールに 3 つのサブモジュールが...

数千万件のレコードをMySQLに素早く挿入する方法に関する実践的なチュートリアル

1. データベースを作成する 2. テーブルを作成する1. deptテーブルを作成する テーブル「d...

JavaScript 中断要求に対するいくつかの解決策の詳細な説明

目次1 約束呼び出しチェーンを中断する約束を破る中止メソッドのラッピング - Axios の Can...

ウェブデザインと制作に関する科学的原則と提案の要約

<br />ネットワーク設計の分野では、アイトラッキングに関する研究が非常に盛んに行われ...

docker CMD/ENTRYPOINT が sh スクリプトを実行する問題の解決策: not found/run.sh:

Dockerfile の設定に問題はありませんが、ENTRYPOINT コマンドを実行するとエラー...

Linux コマンドを素早く習得する 4 つの方法

Linux マスターになりたいなら、いくつかの Linux コマンドを習得することが不可欠です。 L...

iframe ページで js 関数を呼び出すには js を使用します

最近、私は毎日論文提案に取り組んでいます。自分のスキルを発揮して、再びWebをデザインしたくてうずう...

Docker イメージを Docker Hub にプッシュする実装

イメージが正常にビルドされると、Docker 環境があれば使用できますが、イメージを Docker ...