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 詳細なインストールチュートリアル

推薦する

VSCode の JS フォーマットでセミコロンを自動的に追加または削除する方法について

導入js コード文の末尾にセミコロンを追加しても追加しなくても問題ありません。一般的に、チームで開発...

Taobao ストアでズームインする効果は、スライドショーを使用する原理に似ています。

今日は、スライドを使用する原理に似た、Taobao のフロントエンドのマウス ズーム効果に慣れました...

IE6 ウェブページ作成リファレンス IE6 デフォルトスタイル

これは実際には IE の公式ドキュメントではありません。他の人が実践を通じて開発した IE6 のデフ...

CSS はスクロールバーを非表示にしてコンテンツをスクロールする効果を実現します (3 つの方法)

フロントエンド開発では、スクロールバーを非表示にしながらスクロールをサポートしなければならないという...

Dockerを使用して外部からアクセス可能なMySQLを構築する詳細な説明

MySQL 8.0をインストールする docker run -p 63306:3306 -e MYS...

Linux での透過的巨大ページの使用と無効化の概要

導入コンピューティングのニーズが拡大し続けるにつれて、アプリケーションのメモリに対する需要も増加して...

WeChat アプレット uniapp は左スワイプによる削除効果を実現します (完全なコード)

WeChatアプレットuniappは左スワイプで削除効果を実現成果を達成する1. スワイプしてリス...

NavicatでMySqlスケジュールタスクを作成する方法の詳細な説明

Navicat で MySql スケジュールタスクを作成する詳細な説明イベントは、MySQL が特定...

Node8 における AsyncHooks 非同期ライフサイクル

Async Hooks は Node8 の新機能です。NodeJs の非同期リソースのライフサイクル...

LinuxのCPU負荷とCPU使用率の詳細な説明

CPU 負荷と CPU 使用率これらは両方とも、ある程度、マシンの忙しさを反映できます。 CPU 使...

Vue ルーター vue-router 詳細説明ガイド

中国語ドキュメント: https://router.vuejs.org/zh/ Vue Router...

Nginx セッション損失問題の解決策

nginx をリバース プロキシ tomcat として使用する場合、セッション損失が発生する可能性が...

vite2.x は ant-design-vue@next コンポーネントのオンデマンド読み込みを実装します。

1. 使用バージョンバイト:2.0 ant-design-vue: 2.0.0-rc.8ヴュー:3...

JS正規RegExpオブジェクトについての簡単な説明

目次1. RegExpオブジェクト2. 文法2.1 定義2.2 修飾子2.3 角括弧2.4 メタ文字...

MySQLクエリ条件におけるonとwhereの配置の違いの分析

導入今日SQLを書いているときに、問題が発生しました。要件は、データを照会し、スコアと過去 1 週間...