spin.jsを使って、スピナー(ローディングアイコン)を設定しよう!
はじめに
今回は
Cybozu CDN
にストックされた
spin.js
を使ったスピナーの設定をしたいと思います。
デモ環境
デモ環境
で実際に動作を確認できます。
ログイン情報は
cybozu developer networkデモ環境
で確認してください。
spin.js
spin.js
は、スピナー(スピンアイコン、ローディングアイコン、処理中表示)を設置するためのライブラリです。
ストックされたCDNを見てもわかるとおり、CSSやjQueryを伴わずJavaScriptのみで取扱いできることが特長とされています。
今回の適用方法・シナリオ
spin.jsの基本的な使い方は、設置する要素を設定してスタート/ストップをかけるという流れになります。
今回は、kintoneでの利用ですので、REST APIの処理量が大きくなった時の「処理中」に表示します。
そして、処理が終わったら非表示にするということをやってみたいと思います。
こちらでは、レコード総数が100件を超えるアプリに対して処理中レコードをカウントできますが、レコード総数が増えてくるとAPIコール数も増え、「処理中のレコード件数」を表示するまでに多少の時間を要するようになってきます。
そこで、処理中ということが分かるようにスピナーを表示させたいと思います。
アプリの準備
今回のカスタマイズを適用させるアプリを用意します。
次のフィールドをフォームに配置します。
| フィールドタイプ | フィールド名 | フィールドコード | 備考 |
|---|---|---|---|
| 文字列(1行) | タスクタイトル | タスクタイトル | |
| 文字列(複数行) | 詳細 | 詳細 | |
| ラジオボタン | ステータス | status | 未処理 処理中 完了 |
関数の準備(スピナー表示/非表示関数)
スピナーを表示、非表示させる関数を準備します。
これらの関数を呼び出せるように宣言しておけば、あとはshowSpinnerとhideSpinnerを使ってスピナーの表示を切り替えできます。
spin.jsの元の特長を極力損なわず、CSSの指定をし直さなくてよいようこれらの関数中でスタイルを指定しておきます。
|
|
JavaScript/CSSの設定
「PC用のJavaScriptファイル」に、URL指定で次のライブラリを順番に指定します。
- spin.js
https://js.cybozu.com/spinjs/2.3.2/spin.min.js - kintone REST API Client
https://js.cybozu.com/kintone-rest-api-client/5.7.4/KintoneRestAPIClient.min.js
上のサンプルコード(countRecords.js)をアップロードして追加します。
動作確認
APIをコールすると、スピナーが表示され、ユーザーに処理中ということを知らせています。
処理が終了すると、スピナーが消えて「処理中のレコード件数」が表示されます。
ポイントとなるスピナー設定箇所は次の部分です。
APIのコール前にshowSpinner、APIの処理終了後にhideSpinnerを記述しています。
|
|
最後に
今回は、spin.jsを使った全画面イメージのスピナーの設定についてお届けしました。
今回のシナリオ(単純なレコード取得)ではあまり支障にはならないと思いますが、請求や勤怠データの翌月コピー等レコードの登録・更新時は途中でユーザー自身が別の操作に移ってしまったりするとトラブルの元になります。
処理中・処理完了がこのような形で表現されると間違い防止・ユーザビリティの向上につながっていくと思います。
ぜひお試しいただければと思います!
このTipsは、2025年6月版kintoneで動作を確認しています。
