Gmailに似たプログレスバーを作成するにはどうすればよいですか?私はdisplayと呼ばれるdivを持っており<div id="display"></div>
、コンテンツはjqueryを使用して外部ページからフェッチされ、$('#display').load('somepage.html');
この部分は.click()イベントを使用してアクティブ化されます。だから私が試しているのは、「display」にロードするためにsomething.htmlをフェッチするときですが、プログレスバーをに追加するにはどうすればよいですか?<div id="display"></div>
3 に答える
jQueryUI Progress Barをお勧めします。Gmail プログレス バーのスタイルに似たアニメーション バージョンがあります。jQuery Theme Rollerを使用して、Gmail と同じ方法でスキンを適用できます。
残念ながら、jQuery.load は完了したパーセンテージを提供しないため、プログレス バーをゆっくりと完了に向けてアニメーション化することで合計パーセンテージを知っているという効果を偽装できます。ロード時に完了コールバックが実行されたら、プログレス バー アニメーションを完了する必要があります。.load() を呼び出す前に遅いアニメーションを開始し、ページが完全に読み込まれる前に偽のアニメーションを終了しないように、アニメーションを十分に遅くしてください。
使用できる.load() の代替手段がいくつかあります。あなたの場合、進行状況を複数の.load()
呼び出しに分割し、それらに任意のパーセンテージ ポイントを割り当てる必要があると思います。たとえば、最初の .load() が終了したら、プログレス バーを 25% に移動し、次に 2 番目のコンテンツ ロードのために 50% に移動します。
http://api.jquery.com/jQuery.ajax/を使用して (ロードの代わりに) コンテンツをロードし、イベント「beforeSend」および「success」を使用してローダーの CSS を変更できます。
スタイリングに Bootstrap のプログレス バーを使用できます。
関数 .load() が開始する前にプログレスバーを追加します。jQuery 関数 load() には、オプションの 2 番目のパラメーター (ページの読み込み後に実行される関数) があります。この関数では、プログレスバーを再度削除するようにページに指示します。
それが役立つことを願っています...