کیسٹر کیسٹر: فولڈ ابل کانٹنٹ / هندفول

آموزش اینکه چگونه آکورديون (محتوای قابل فروکش) ایجاد کنید.

آکورديون

آکورديون بسیار مفید است وقتی که می‌خواهید بین پنهان کردن و نمایش مقدار زیادی محتوا جابجا شوید:

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

کمپیوٹر کا کیس

آکورديون ایجاد کن

مرحله اول - اضافه کردن HTML:

<button class="accordion">بخش 1</button>
<div class="panel">
  <p>Lorem ipsum...</p>
</div>
<button class="accordion">بخش 2</button>
<div class="panel">
  <p>Lorem ipsum...</p>
</div>
<button class="accordion">بخش 3</button>
<div class="panel">
  <p>Lorem ipsum...</p>
</div>

مرحله دوم - اضافه کردن CSS:

استایل بده به آکورديون

/* استایل بده به دکمه‌هایی که برای باز و بستن پینل آکورديون استفاده می‌شوند */
.accordion {
  background-color: #eee;
  color: #444;
  cursor: pointer;
  padding: 18px;
  width: 100%;
  text-align: left;
  border: none;
  outline: none;
  transition: 0.4s;
}
/* اگر دکمه کلیک شود (کلاس .active با استفاده از جاوااسکریپت اضافه شود)، پس رنگ پس‌زمینه رو اضافه کن و همچنین وقتی که موس روی آن قرار می‌گیرد (موس روی آن قرار دارد) */
.active, .accordion:hover {
  background-color: #ccc;
}
/* استایل بده به پینل آکورديون. توجه: پیش‌فرض مخفی است */
.panel {
  padding: 0 18px;
  background-color: white;
  display: none;
  overflow: hidden;
}

مرحله سوم - اضافه کردن جاوااسکریپت:

var acc = document.getElementsByClassName("accordion");
var i;
for (i = 0; i < acc.length; i++) {
  acc[i].addEventListener("click", function() {
    /* بستریفن یا نکال آکتیو کلاس، تا دکمه‌ی کنترل پینل رو برجسته کن */
    this.classList.toggle("active");
    /* بستریفن یا نشون دین آکتیو پینل */
    var panel = this.nextElementSibling;
    if (panel.style.display === "block") {
      panel.style.display = "none";
    } else {
      panel.style.display = "block";
    }
  });
}

کمپیوٹر کا کیس

دسته‌بندی‌های پویا (با رول پایین)

برای ساخت دسته‌بندی‌های پویا، به کلاس پنل max-height: 0،overflow: hidden و max-height 过渡效果。

سپس، با استفاده از JavaScript، با توجه به اندازه صفحه نمایش مختلف، ارتفاع پنل را محاسبه کرده و تنظیم کنید max-height، تا به محتوای به سمت پایین رول شود:

<style>
.panel {
  padding: 0 18px;
  background-color: white;
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.2s ease-out;
}
</style>
<script>
var acc = document.getElementsByClassName("accordion");
var i;
for (i = 0; i < acc.length; i++) {
  acc[i].addEventListener("click", function() {
    this.classList.toggle("active");
    var panel = this.nextElementSibling;
    if (panel.style.maxHeight) {
      panel.style.maxHeight = null;
    } else {
      panel.style.maxHeight = panel.scrollHeight + "px";
    }
  });
}
</script>

کمپیوٹر کا کیس

آیکون اضافه کنید

در هر دکمه یک علامت اضافه کنید تا نشان دهد محتوای قابل فرو رفتن باز یا بسته است یا خیر:

.accordion:after {
  content: '\02795'; /* “加号”(+)的 Unicode 字符 */
  font-size: 13px;
  color: #777;
  float: right;
  margin-left: 5px;
}
.active:after {
  content: "\2796"; /* “减号”(-)的 Unicode 字符 */
}

کمپیوٹر کا کیس