修改考试手机端效果

This commit is contained in:
2026-05-03 20:20:50 +08:00 Unverified
parent df13cc6a9b
commit c8f6d13d84
3 changed files with 126 additions and 11 deletions
+31
View File
@@ -228,6 +228,16 @@ let questionNumber = 0;
}
</article>
<button
class="score-fab"
type="button"
aria-controls="scorer"
aria-expanded="false"
aria-label="打开答题卡"
data-score-toggle
>
</button>
<aside class="score-sidebar" id="scorer" aria-label="答题卡">
<form class="score-panel" id="exam-scorer">
<div class="score-sidebar-head">
@@ -357,6 +367,8 @@ let questionNumber = 0;
}}
>
const scorer = document.querySelector("#exam-scorer");
const scoreSidebar = document.querySelector("#scorer");
const scoreToggle = document.querySelector("[data-score-toggle]");
const candidateName = document.querySelector("#candidate-name");
const admissionNumber = document.querySelector("#admission-number");
const seatNumber = document.querySelector("#seat-number");
@@ -365,6 +377,16 @@ let questionNumber = 0;
const cardSeatNumber = document.querySelector("#card-seat-number");
const draftStorageKey = "examDraft";
const setScoreMenuOpen = (isOpen) => {
scoreSidebar?.classList.toggle("is-open", isOpen);
if (scoreToggle) {
scoreToggle.setAttribute("aria-expanded", String(isOpen));
scoreToggle.setAttribute("aria-label", isOpen ? "关闭答题卡" : "打开答题卡");
scoreToggle.textContent = isOpen ? "×" : "答";
}
};
const normalizeAnswer = (value) =>
String(value || "")
.trim()
@@ -754,8 +776,17 @@ let questionNumber = 0;
behavior: "smooth",
block: "start"
});
setScoreMenuOpen(false);
});
});
scoreToggle?.addEventListener("click", () => {
setScoreMenuOpen(!scoreSidebar?.classList.contains("is-open"));
});
document.addEventListener("keydown", (event) => {
if (event.key === "Escape") {
setScoreMenuOpen(false);
}
});
admissionNumber?.addEventListener("input", () => {
admissionNumber.value = admissionNumber.value.replace(/\D/g, "").slice(0, admissionNumber.maxLength);