الأكورديون (توسيع/طي)
جزء من قسم JavaScript in Action في رحلة HTML على Coddy — الدرس 2 من 27.
إن الأكورديون (accordion) هو مكون واجهة مستخدم يتيح لك توسيع وطي أقسام المحتوى. غالبًا ما يُستخدم للأسئلة الشائعة (FAQs) (انقر فوق سؤال ← يظهر الجواب، انقر مرة أخرى ← يتم إخفاؤه).
الفكرة بسيطة: عندما تنقر على ترويسة (header)، يقوم JavaScript بتبديل حالة ظهور المحتوى الموجود أسفلها.
النقاط الرئيسية:
- لدينا زر و عنصر محتوى مخفي بشكل افتراضي (
display: none).
- النقر على الزر يستدعي الدالة ويمرر معرف (ID) العنصر الذي يجب فتحه.
- داخل الدالة:
- إذا كان العنصر معروضًا بالفعل (
display: block)، نقوم بإخفائه (display: none). - خلاف ذلك، نقوم بإظهاره (
display: block).
- إذا كان العنصر معروضًا بالفعل (
<button onclick="toggle('p1')">السؤال 1</button>
<div id="p1" style="display:none;">الإجابة 1</div>
<script>
function toggle(id) {
const element = document.getElementById(id);
if (element.style.display === "block") {
element.style.display = "none";
} else {
element.style.display = "block";
}
}
</script>التحدي
سهلفي الوقت الحالي، يحتوي الأكورديون الخاص بنا على ثلاثة أسئلة. مهمتك هي إضافة سؤال رابع.
الخطوات:
- قم بإنشاء
<button>جديد بالنص: Should I add milk or drink it black? - اربطه بلوحة جديدة عن طريق استدعاء الوظيفة
onclick="togglePanel('q4')" - قم بإنشاء
<div>بـid="q4"وفئةpanel. - داخل الـ div، اكتب الإجابة:
It depends on your taste! Black coffee has stronger flavor, while milk softens the bitterness.
جرّب بنفسك
<!DOCTYPE html>
<html>
<head>
<title>FAQ Accordion</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<h1>FAQ Coffee Lovers</h1>
<button class="accordion" onclick="togglePanel('q1')">What is the best way to brew coffee at home?</button>
<div id="q1" class="panel">
The French press and pour-over methods are popular for making rich, flavorful coffee at home.
</div>
<button class="accordion" onclick="togglePanel('q2')">Where do coffee beans come from?</button>
<div id="q2" class="panel">
Most coffee beans are grown in countries around the equator, such as Brazil, Ethiopia, and Colombia.
</div>
<button class="accordion" onclick="togglePanel('q3')">How late can I drink coffee?</button>
<div id="q3" class="panel">
It's best to avoid coffee 6 hours before bedtime, since caffeine can affect your sleep.
</div>
<script src="script.js"></script>
</body>
</html>يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس JavaScript in Action
1التفاعلية / مكونات واجهة المستخدم
علامات التبويبالأكورديون (توسيع/طي)Modal (فتح/إغلاق)القائمة المنسدلة