jQueryにて何らかの処理中にブラウザをロックする「waitMe」プラグインの利用方法
jQueryにて何らかの処理中、ユーザーによるクリックや入力等の動作を防ぎたい。だいぶ前にjQueryの「Block UI」というプラグインをメモしたが(個人的に)デザイン部分が合わなかった。他にないか調べたところ「waitMe」プラグインがシンプルかつ見た目的に好み。以下にサンプルと利用方法をメモ。
サンプル
https://taitan916.info/sample/jquery_waitMe/
ボタンをクリックするとブラウザ上で他の動作が行えなくなり、2秒後に解除される点が確認できる筈。
waitMe
公式サイト
http://vadimsva.github.io/waitMe/
GitHub
https://github.com/vadimsva/waitMe
CDN
CDNで使う場合は以下を記述する。
<script type="text/javascript" src="https://code.jquery.com/jquery-3.7.1.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/waitme@1.19.0/waitMe.min.js"></script> <link href="https://cdn.jsdelivr.net/npm/waitme@1.19.0/waitMe.min.css" rel="stylesheet">
利用方法
ソースコード
<button id="btn">button</button>
<script type="text/javascript" src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/waitme@1.19.0/waitMe.min.js"></script>
<link href="https://cdn.jsdelivr.net/npm/waitme@1.19.0/waitMe.min.css" rel="stylesheet">
<script>
$(function(){
$(`#btn`).on(`click`, function(){
const option = {
text: `<div class="msg">只今処理中のため、<br>ページを閉じずにお待ちください<div>`,
bg: `rgba(230,230,230,0.6)`,
}
$(`body`).waitMe(option);
//2秒後に解除
setTimeout(() => {
$(`body`).waitMe(`hide`);
}, 2000);
});
});
</script>
注意点
上記ソースコードはサンプルのため2秒後に解除しているが、本来であれば何らかの処理終了後に「$(`body`).waitMe(`hide`);」で解除すること。
尚、今回はbody内全てをブロックしているが、例えばform部分のみブロック等の指定も可能。
関連記事
-
-
日付の範囲指定用プラグイン「DateRangePicker」の利用方法
日付型のデータを検索する際に開始・終了日のテキストボックスを用意し、それぞれにタ ...
-
-
javascriptやjQueryで画像を書き換えても変わらない場合
けっこう前に画像をアップロードしてリアルタイムにプレビューする機能を作った時に、 ...
-
-
pjaxについてのメモ
ずっと気になっていたpjaxについてのメモ。 ■参考サイト http://chi ...
-
-
tableのtd内にあるcheckboxのクリック範囲を拡大させ、チェック時に親要素であるtdにCSSを割り当てる方法
tableのtd内にcheckboxを設置し、td部分をクリックすることでche ...
-
-
jQuery UIでカレンダーピッカー(Datepicker)の利用方法
フォーム等で日付を入力する際にカレンダーピッカー機能を実装することがある。その際 ...