パーツ番号 04-14-02 ・ JavaScript使用
進捗バー連動アンケートフォーム
次へ/戻るを押すたびに上部の進捗バーと分数表示が滑らかに伸縮します。複数問の顧客満足度アンケートで残り設問数を可視化したいときに使えます。
プレビュー
ソースコード
HTML
<div class="d04-14-02-wrap">
<p class="d04-14-02-q">Q2. 当サービスをどこで知りましたか?</p>
<div class="d04-14-02-bar"><span class="d04-14-02-fill"></span></div>
<span class="d04-14-02-count">2 / 5</span>
<div class="d04-14-02-nav">
<button type="button" class="d04-14-02-prev">戻る</button>
<button type="button" class="d04-14-02-next">次へ</button>
</div>
</div>CSS
.d04-14-02-wrap{width:min(280px,100%);text-align:center}
.d04-14-02-q{margin:0 0 14px;font-size:13px;color:#333;font-weight:700;min-height:34px}
.d04-14-02-bar{height:8px;border-radius:4px;background:#e4e8ef;overflow:hidden}
.d04-14-02-fill{display:block;height:100%;width:40%;border-radius:4px;background:#4a6cf7;transition:width .35s ease}
.d04-14-02-count{display:block;margin:8px 0 16px;font-size:11px;color:#8a93a3}
.d04-14-02-nav{display:flex;justify-content:center;gap:10px}
.d04-14-02-nav button{
padding:9px 16px;font-size:13px;font-weight:700;border-radius:8px;cursor:pointer;
border:2px solid #d5d9e0;background:#fff;color:#444;transition:opacity .2s;
}
.d04-14-02-nav .d04-14-02-next{background:#4a6cf7;border-color:#4a6cf7;color:#fff}
.d04-14-02-nav button:disabled{opacity:.4;cursor:not-allowed}JavaScript
(function(){
var wrap=document.querySelector('.d04-14-02-wrap');
if(!wrap)return;
var fill=wrap.querySelector('.d04-14-02-fill');
var count=wrap.querySelector('.d04-14-02-count');
var q=wrap.querySelector('.d04-14-02-q');
var prevBtn=wrap.querySelector('.d04-14-02-prev');
var nextBtn=wrap.querySelector('.d04-14-02-next');
var qs=[
'Q1. ご利用の頻度を教えてください',
'Q2. 当サービスをどこで知りましたか?',
'Q3. 満足度を5段階で教えてください',
'Q4. 改善してほしい点はありますか?',
'Q5. 友人に薦めたいと思いますか?'
];
var total=qs.length,cur=1;
function paint(){
fill.style.width=Math.round((cur/total)*100)+'%';
count.textContent=cur+' / '+total;
q.textContent=qs[cur-1];
prevBtn.disabled=cur===1;
nextBtn.textContent=cur===total?'完了':'次へ';
}
prevBtn.addEventListener('click',function(){ if(cur>1){cur--;paint();} });
nextBtn.addEventListener('click',function(){ if(cur<total){cur++;paint();} });
paint();
})();クラス名 .d04-14-02 は本ライブラリ内での識別用です。複数のパーツを同じページで使う場合は、重複しないよう名前を変更してください。