🎆 Enhanced IELTS Listening Test 1

中等难度 30分钟 40题
🚀

增强特性

  • 全面键盘快捷键支持
  • 音频断点跳转功能
  • 智能题目标记系统
  • 移动端优化体验
  • 自动进度保存
1.00x
00:00 / 00:00

Section 1

Questions 1-10
Complete the form below.
Write ONE WORD OR A NUMBER for each answer.

Amateur Dramatic Society

Secretary: Jane Caulfield

Mailing address: 117 Green Road, Prestwin

No experience necessary

document.addEventListener('DOMContentLoaded', function() { // 初始化题目数据 if (typeof TEST_DATA !== 'undefined' && enhancedAnswerSheet) { const allQuestions = []; // 从 TEST_DATA 提取所有题目 Object.keys(TEST_DATA).forEach(sectionKey => { const section = TEST_DATA[sectionKey]; if (section.questions) { section.questions.forEach(q => allQuestions.push(q)); } else if (section.parts) { section.parts.forEach(part => { if (part.questions) { part.questions.forEach(q => allQuestions.push(q)); } }); } }); enhancedAnswerSheet.setQuestions(allQuestions); } // 监听答题变化 document.addEventListener('input', function(e) { if (e.target.matches('input[type="text"], input[type="radio"]')) { const questionId = e.target.id || e.target.name; const value = e.target.type === 'radio' ? (e.target.checked ? e.target.value : null) : e.target.value; if (enhancedAnswerSheet && questionId) { enhancedAnswerSheet.updateAnswer(questionId, value); } updateProgress(); } }); // 更新进度 function updateProgress() { const inputs = document.querySelectorAll('input[type="text"], input[type="radio"]:checked'); const totalQuestions = document.querySelectorAll('.question-item').length; const answeredCount = Array.from(inputs).filter(input => { return input.type === 'radio' ? input.checked : input.value.trim() !== ''; }).length; const percentage = (answeredCount / totalQuestions) * 100; const progressFill = document.querySelector('.progress-fill'); const progressText = document.querySelector('.progress-text'); if (progressFill) progressFill.style.width = percentage + '%'; if (progressText) progressText.textContent = `${answeredCount} / ${totalQuestions} 题已完成`; } // 监听答题卡事件 document.addEventListener('answerSheet:questionChanged', function(e) { const questionIndex = e.detail.index; // 切换到对应题目 console.log('切换到题目', questionIndex + 1); }); // Section切换事件 document.querySelectorAll('.section-tab').forEach(tab => { tab.addEventListener('click', function() { const sectionNum = this.dataset.section; switchToSection(sectionNum); }); }); function switchToSection(sectionNum) { // 更新标签样式 document.querySelectorAll('.section-tab').forEach(tab => { tab.classList.remove('active'); tab.setAttribute('aria-selected', 'false'); }); const activeTab = document.querySelector(`[data-section="${sectionNum}"]`); if (activeTab) { activeTab.classList.add('active'); activeTab.setAttribute('aria-selected', 'true'); } // 更新内容区域 document.querySelectorAll('.question-container').forEach(container => { container.style.display = 'none'; }); const activeContent = document.getElementById(`section${sectionNum}-content`); if (activeContent) { activeContent.style.display = 'block'; } // 通知音频播放器 if (enhancedAudioPlayer) { enhancedAudioPlayer.currentSection = parseInt(sectionNum); } } // 初始化键盘导航系统 if (keyboardNavigation) { keyboardNavigation.updateQuestionInfo(0, 40); } // 显示启动提示 setTimeout(() => { if (enhancedAnswerSheet) { enhancedAnswerSheet.showFeedback('🎆 增强测试系统已启动!按 H 查看帮助', 'info'); } }, 1500); }); // 全局函数 function resetTest() { if (confirm('确定要重新开始测试吗?所有答案将被清除。')) { // 清除所有输入 document.querySelectorAll('input').forEach(input => { if (input.type === 'radio' || input.type === 'checkbox') { input.checked = false; } else { input.value = ''; } }); // 重置答题卡 if (enhancedAnswerSheet) { enhancedAnswerSheet.reset(); } // 重置音频播放器 if (enhancedAudioPlayer) { Object.values(enhancedAudioPlayer.players).forEach(player => { if (player && player.audio) { player.audio.pause(); player.audio.currentTime = 0; } }); } // 更新进度 updateProgress(); } } function submitTest() { // 收集所有答案 const rawInputs = {}; document.querySelectorAll('input').forEach(input => { if (input.type === 'radio' && input.checked) { rawInputs[input.name] = input.value; } else if (input.type === 'text' && input.value.trim()) { rawInputs[input.id] = input.value.trim(); } }); // 归一化为 sectionX_Y 键 const userAnswers = {}; const toKey = (qNum) => { const n = parseInt(String(qNum), 10); const section = Math.min(4, Math.max(1, Math.ceil(n / 10))); return `section${section}_${n}`; }; Object.entries(rawInputs).forEach(([k, v]) => { const match = String(k).match(/(\d{1,2})/); if (match) userAnswers[toKey(match[1])] = v; }); // 构建答案键映射 const answerKey = {}; if (typeof standardAnswers !== 'undefined') { Object.entries(standardAnswers).forEach(([num, ans]) => { answerKey[toKey(num)] = ans; }); } try { localStorage.setItem('userAnswers', JSON.stringify(userAnswers)); } catch (_) {} if (window.ScoreEngine && typeof window.ScoreEngine.calculate === 'function') { const scoreResult = window.ScoreEngine.calculate(userAnswers, answerKey); try { localStorage.setItem('latestScoreResult', JSON.stringify(scoreResult)); localStorage.setItem('latestAnswerKey', JSON.stringify(answerKey)); } catch (_) {} console.log('[ScoreEngine] 评分结果', scoreResult); } if (enhancedAnswerSheet) { enhancedAnswerSheet.showFeedback('答案已提交!即将显示评分', 'success'); } setTimeout(() => { window.location.href = 'score-validator.html'; }, 800); }