jQuery ステップ進行軸プラグインの実装コード

jQuery ステップ進行軸プラグインの実装コード

毎日のjQueryプラグイン - ステップ進捗軸 ステップ進捗軸

ツール系のサイトでは入門チュートリアルやアカウント登録のときにこの構造になっているものが多いので試しに作ってみました。コールバックアクションも使えると思います。

効果は以下のとおりです

ここに画像の説明を挿入

コードセクション

*{
	マージン: 0;
	パディング: 0;
}
#div{
	幅: 90%;
	高さ: 50px;
	マージン: 10px 自動;
	ディスプレイ: フレックス;
	コンテンツの中央揃え: 中央;
	アイテムの位置を中央揃えにします。
}
#箱{
	幅: 90%;
	高さ: 100px;
	境界線: 1px 実線のライトグレー;
	マージン: 10px 自動;
	ディスプレイ: フレックス;
	コンテンツの中央揃え: 中央;
	アイテムの位置を中央揃えにします。
	位置: 相対的;
}
。箱{
	位置: 絶対;
	幅: 100%;
	高さ: 100%;
	上: 0;
	左: 0;
	ディスプレイ: フレックス;
	コンテンツの中央揃え: 中央;
	アイテムの位置を中央揃えにします。
	背景色: 黒;
	色: 白;
}
.tbar{
	幅: 90%;
	高さ: 6px;
	境界線の半径: 5px;
	背景色: ライトグレー;
	ディスプレイ: フレックス;
	アイテムの位置を中央揃えにします。
	位置: 絶対;
}
。バー{
	幅: 100%;
	高さ: 50%;
	境界線の半径: 5px;
	背景色: #1abc9c;
	遷移: すべて 0.2 秒線形。
}
。ドット{
	位置: 絶対;
	幅: 12px;
	高さ: 12px;
	境界線の半径: 50%;
	背景色: ライトグレー;
	カーソル: ポインタ;
	ディスプレイ: フレックス;
	コンテンツの中央揃え: 中央;
	アイテムの位置を中央揃えにします。
}
.dot:ホバー{
	遷移: すべて 0.5 秒の線形。
	背景色: #1abc9c;
}
.dot.check{
	背景色: #1abc9c;
}
.dot .txt{
	上: 100%;
	フォントサイズ: 12px;
	位置: 絶対;
	幅: 100ピクセル;
	テキスト配置: 中央;
}
<!DOCTYPE html>
<html>
	<ヘッド>
		<メタ文字セット="utf-8">
		<title>ステップ進捗軸</title>
		<script src="js/jquery-3.4.1.min.js"></script>
		<script src="js/bzjdz.js"></script>
		<link href="css/bzjdz.css" rel="外部nofollow" rel="スタイルシート" type="text/css" />
	</head>
	<本文>
		<div id="div">
			
		</div>
		<div id="ボックス">
			<div class="box" id="box1" style="background-color: #1abc9c;">ステップ 1</div>
			<div class="box" id="box2" style="background-color: #3498db;">ステップ 2</div>
			<div class="box" id="box3" style="background-color: #f1c40f;">ステップ 3</div>
			<div class="box" id="box4" style="background-color: #e74c3c;">ステップ 4</div>
			<div class="box" id="box5" style="background-color: #9b59b6;">ステップ 5</div>
		</div>
	</本文>
</html>
<スクリプト>
	$(関数(){
		$("#div").タイムライン({
			データ:[
				{name:'ステップ 1',id:'#box1',click:hide},
				{name:'ステップ 2',id:'#box2',click:hide},
				{name:'ステップ 3',id:'#box3',click:hide},
				{name:'ステップ 4',id:'#box4',click:hide},
				{name:'ステップ 5',id:'#box4',click:hide},
			]
		})
	})
	関数hide(item){
		$(".box").非表示();
		$(item.id).show();
	}
</スクリプト>
$.prototype.timeline = function(op){
	コンソールにログ出力します。
	var $that = $(this);
	var $tbar =$("<div class='tbar'></div>");
	var $bar =$("<div class='bar'></div>");
	$bar.appendTo($tbar)
	$tbar.appendTo($that);
	var length = op.data.length; //要素の長さ var index = 0; //現在のステップ op.data.forEach((item,index)=>{
		var per = getper(インデックス,長さ)
		var $dot = $("<div class='dot' data-index='"+index+"'><div class='txt'>"+item.name+"</div></div>");
		$dot.appendTo($tbar);
		$dot.css('left',"calc("+per+"% - 6px)")
	})
	//クリックイベント $that.find('.dot').click(function(){
		インデックス = parseInt($(this).attr('data-index'));
		//対応するメソッドを実行します click();
	})
	クリック();
	関数クリック(){
		//コールバック var item = op.data[index];
		アイテムをクリックします。
		//アニメーションスタイル var per = getper(index,length)
		$bar.css('幅',per+'%')
		//ボタン選択コントロール op.data.forEach((item,i)=>{
			if(i<=インデックス){
				$tbar.find(".dot[data-index='"+i+"']").addClass('チェック');
			}それ以外{
				$tbar.find(".dot[data-index='"+i+"']").removeClass('check');
			}
		})
	}
	関数 getper(i,l){
		var temp = 0;
		i!=0&&i!=l-1の場合{
			temp = i/(l-1)*100//おおよその距離を計算する }else if(i==l-1){
			温度 = 100
		}
		温度を返します。
	}
}

アイデアの説明

必要な作業は非常に簡単です。タイムラインを描き、対応するポイントをマークし、対応するイベントがトリガーされたときにコールバックを正しく呼び出します。タイムラインはこのように描かれます。パーセンテージが満たされると、他には何もありません。次に、進行状況を変更するポイントをキャンパスポイントから分離します。小さなドットをクリックすると、現在の構造マークが変更され、その後、アニメーション効果とコールバックを同時に実行するイベントがトリガーされます。
終了、休憩

上記は、jQuery ステップ進捗軸プラグインの実装コードの詳細な内容です。jQuery ステップ進捗軸の詳細については、123WORDPRESS.COM の他の関連記事に注目してください。

以下もご興味があるかもしれません:
  • jQueryステッププログレスバーのソースコード共有に基づく
  • jQuery+ajax で写真をアップロードし、アップロードの進行状況を表示する機能 [php バックグラウンド受信あり]
  • jQuery の手動ドラッグ コントロール プログレス バー効果の例 [テストあり]
  • jQuery NProgress.js 読み込み進捗プラグインの簡単な使い方
  • jquery-file-upload 進行状況バー効果付きのファイルアップロード
  • jQuery はドラッグ可能なプログレスバーのサンプルコードを実装します
  • jQuery Web ページ読み込みプログレスバーの実装

<<:  MySQL 8.0.12 解凍バージョンのインストールチュートリアル

>>:  MySQL 8.0.12 winx64 詳細なインストールチュートリアル

推薦する

Linux コマンドラインで電卓を使用する 5 つのコマンド

みなさんこんにちは。私は梁旭です。 Linux を使用するときに、計算を行う必要がある場合があり、そ...

Vueライフサイクルの詳細な説明

目次ライフサイクルを理解する理由ライフサイクルとはライフサイクルフック関数作成され、マウントされたフ...

純粋な CSS3 マインドマップ スタイルの例

マインドマップ彼はおそらく次のように見えるでしょう: インターネット上の実装のほとんどは d3.js...

MySQL INT型の完全な分析

序文: Integer は MySQL で最もよく使用されるフィールド型の 1 つで、通常は整数を格...

webpackが静的リソースキャッシュを実装する方法

目次導入複数の異なるハッシュを区別するハッシュチャンクハッシュコンテンツハッシュjs キャッシュの実...

Centos7にTenda U12ワイヤレスネットワークカードドライバーをインストールする際の問題を解決する

解決プロセス:方法1: CentOS7.3 のデフォルトのカーネル バージョンは低く、3.10.0-...

MySQL 8.0.20 圧縮版のインストールチュートリアル(画像とテキスト付き)

1. MySQL ダウンロード アドレス。 http://ftp.ntu.edu.tw/MySQL...

MySQL の計画タスクとイベント スケジュール例の分析

この記事では、例を使用して、MySQL の計画されたタスクとイベントのスケジュールについて説明します...

.htaccess を使用して特定の IP からの Web サイトへのアクセスを禁止する方法

序文コストを考慮して、ほとんどのウェブマスターは、多数の小規模なウェブサイト用にサーバーを個別に購入...

js の parseInt() の奇妙な動作の調査と修正

背景: parseInt(0.006) または parseInt(0.0006) は 0 という値を...

航空機戦争ゲームを実装するためのJavaScript

この記事では、キャンバスとjsを使用して簡単な飛行機戦争を実装する方法を参考までに紹介します。具体的...

HTML マルチメディア アプリケーション: Web ページにフラッシュ アニメーションと音楽を挿入する

1. HTML_falshアニメーションでのマルチメディアの応用(WebページへのFlashアニメー...

ウェブサイトのユーザビリティを向上させる10のヒント

企業の Web サイト、個人のブログ、ショッピング Web サイト、ゲーム Web サイトなど、どの...

初心者がHTMLタグを学ぶ(2)

初心者は、いくつかの HTML タグを理解することで HTML を学習できます。この入門書は、初心者...

CSSで半透明の背景色を実現する2つの方法について簡単に説明します。

ページをレイアウトする際、ユーザーに異なる視覚効果を与えるために、div の背景色を半透明の状態に設...