/* よくある質問:質問をクリックで回答を開閉(初期表示は閉じた状態) */ (function () { var reduceMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches; function open(button, answer) { button.setAttribute('aria-expanded', 'true'); var start = answer.hidden ? 0 : answer.getBoundingClientRect().height; // 閉じる途中で押された場合はその高さから answer.hidden = false; if (reduceMotion) return; answer.style.height = start + 'px'; answer.offsetHeight; // 高さ0を確定させてからアニメーション開始 answer.style.height = answer.scrollHeight + 'px'; } function close(button, answer) { button.setAttribute('aria-expanded', 'false'); if (reduceMotion) { answer.hidden = true; return; } answer.style.height = answer.getBoundingClientRect().height + 'px'; answer.offsetHeight; answer.style.height = '0px'; } document.querySelectorAll('.ak_qa_list button[aria-controls]').forEach(function (button) { var answer = document.getElementById(button.getAttribute('aria-controls')); if (!answer) return; // 初期状態:閉じる(JSが動かない環境では開いたまま表示) button.setAttribute('aria-expanded', 'false'); answer.hidden = true; answer.addEventListener('transitionend', function (e) { if (e.propertyName !== 'height') return; if (button.getAttribute('aria-expanded') === 'true') { answer.style.height = ''; // 開き終わったら高さを自動に戻す(画面幅の変化に追従) } else { answer.hidden = true; answer.style.height = ''; } }); button.addEventListener('click', function () { if (button.getAttribute('aria-expanded') === 'true') { close(button, answer); } else { open(button, answer); } }); }); })();