spin.jsについて

お世話になっております。javascript初心者です。どうぞよろしくお願いいたします。

下記サイトにて公開されているJSですが、複数回showSpinner()、hideSpinner()と交互に呼び出す場合に、下記画像のようにspinnerが出てこないバグが生じます。document.getElementsByClassName('.kintone-spinner')のところで、class指定にドットがついていますが、getElementsByClassNameの場合はドットは不要かと思うので、恐らくdocument.getElementsByClassName('kintone-spinner')とすべきかと思うのですが、有識者の方ご教示いただけると幸いです。よろしくお願いいたします。

spin.jsを使って、スピナー(ローディングアイコン)を設定しよう!

/**
* スピナー設置用の関数
**/
// スピナーを動作させる関数
const showSpinner = () => {
  // 要素作成等初期化処理
  if (document.getElementsByClassName('.kintone-spinner').length === 0) {

    // スピナー設置用要素の作成
    const spinDiv = document.createElement('div');
    spinDiv.id = 'kintone-spin';
    spinDiv.classList.add('kintone-spinner');

    // スピナーと背景要素の作成
    const spinBgDiv = document.createElement('div');
    spinBgDiv.id = 'kintone-spin-bg';
    spinBgDiv.classList.add('kintone-spinner');

    // スピナー用要素をbodyにappend
    document.body.appendChild(spinDiv);
    document.body.appendChild(spinBgDiv);

    // スピナー動作に伴うスタイル設定
    spinDiv.style.cssText = 'position: fixed; top: 50%; left: 50%; z-index: 510; background-color: #fff; padding: 26px; border-radius: 4px;';
    spinBgDiv.style.cssText = 'position: fixed; top: 0px; left: 0px; z-index: 500; width: 100%; height: 100%; background-color: #000; opacity: 0.5;';


    // スピナーに対するオプション設定
    const opts = {
      color: '#000'
    };

    // スピナーを作動
    new Spinner(opts).spin(document.getElementById('kintone-spin'));
  }

  document.querySelectorAll('.kintone-spinner').forEach(element => {
    element.style.display = 'block';
  });
};

// スピナーを停止させる関数
const hideSpinner = () => {
  // スピナー停止(非表示)
  document.querySelectorAll('.kintone-spinner').forEach(element => {
    element.style.display = 'none';
  });
};

ご指摘の通りだとおもいます!(たまにやってしまう間違いのひとつだとはおもいます

このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。