← 動的パーツギャラリーへ戻る

パーツ番号 04-04-05 ・ JavaScript使用

アップロードキュー管理リスト

待機中・アップロード中・完了のステータスが順番に切り替わるキュー表示。一括登録フォームの進行状況表示に。

jsinput

プレビュー

ソースコード

HTML

<div class="d04-04-05-list">
          <div class="d04-04-05-row"><span class="d04-04-05-name">photo1.png</span><span class="d04-04-05-status">待機中</span></div>
          <div class="d04-04-05-row"><span class="d04-04-05-name">photo2.png</span><span class="d04-04-05-status">待機中</span></div>
          <div class="d04-04-05-row"><span class="d04-04-05-name">photo3.png</span><span class="d04-04-05-status">待機中</span></div>
        </div>

CSS

.d04-04-05 .d04-04-05-list{width:100%;max-width:210px;display:flex;flex-direction:column;gap:8px}
        .d04-04-05 .d04-04-05-row{display:flex;align-items:center;justify-content:space-between;padding:7px 10px;background:#f9fafb;border-radius:8px}
        .d04-04-05 .d04-04-05-name{font-size:11px;color:#374151}
        .d04-04-05 .d04-04-05-status{font-size:10px;padding:3px 8px;border-radius:99px;background:#e5e7eb;color:#6b7280;transition:all .3s ease}
        .d04-04-05 .d04-04-05-status.uploading{background:#dbeafe;color:#2563eb}
        .d04-04-05 .d04-04-05-status.done{background:#dcfce7;color:#16a34a}

JavaScript

(function(){
          var root=document.currentScript.closest('.item');
          var st=root.querySelectorAll('.d04-04-05-status');
          function setState(i,cls,text){st[i].className='d04-04-05-status '+cls;st[i].textContent=text;}
          function reset(){for(var i=0;i<st.length;i++)setState(i,'','待機中');}
          function run(i){
            if(i>=st.length){setTimeout(function(){reset();run(0);},1200);return;}
            setState(i,'uploading','アップロード中');
            setTimeout(function(){
              setState(i,'done','完了');
              run(i+1);
            },1000);
          }
          reset();
          setTimeout(function(){run(0);},600);
        })();

クラス名 .d04-04-05 は本ライブラリ内での識別用です。複数のパーツを同じページで使う場合は、重複しないよう名前を変更してください。