勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ。

jQueryにて何らかの処理中にブラウザをロックする「waitMe」プラグインの利用方法

  jQuery JavaScript

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で使う場合は以下を記述する。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<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 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 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">

 

利用方法

ソースコード

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<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>
<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>
<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部分のみブロック等の指定も可能。

 - jQuery JavaScript

  関連記事

jQueryにて特定のIDが存在するかチェックし分岐処理する方法

jQueryにて特定のIDが存在するかチェックし分岐処理したいというケースがあっ ...

jQueryで偶数or奇数行に任意のClassを付与する方法

tableタグの1行目を除く偶数もしくは奇数行のtrタグに任意にClassを指定 ...

jQueryにて指定した要素を検索条件から除外するnot()の利用方法

あるソースコードを拝見しているとjQueryでnot()という使ったことの無いメ ...

jQueryでUNIXタイムスタンプの取得

jQueryでUNIXタイムスタンプを取得したい場合、 $.now()だけで取得 ...

NicEdit(WYSIWYGエディタ)とテキストエリアの切り替え

チェックボックスのON / OFFでNicEdit(WYSIWYGエディタ)とt ...

S