كيفية إنشاء: تأثير الطي

تعلم كيفية إنشاء جزء قابلة للطي.

تأثير قابل للطي

انقر على هذا الزر للتبديل بين العرض والإخفاء لمحتوى القابلة للطي.

محتوى قابل للطي. انقر على الزر للتبديل بين عرض وإخفاء محتوى القابلة للطي. 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 type="button" class="collapsible">فتح القابلة للطي</button>
<div class="content">
  <p>Lorem ipsum...</p>
</div>

الخطوة الثانية - إضافة CSS:

ضبط نمط السحابة:

/* ضبط نمط الزر المستخدم لفتح وإغلاق محتوى القابلة للطي */
.collapsible {
  background-color: #eee;
  color: #444;
  cursor: pointer;
  padding: 18px;
  width: 100%;
  border: none;
  text-align: left;
  outline: none;
  font-size: 15px;
}
/* عند الضغط على الزر، وعندما يتم تحريك الفأرة فوق الزر (الطي)، أضف لون خلفية للزر (استخدام JS لضبط .active class) */
.active, .collapsible:hover {
  background-color: #ccc;
}
/* ضبط نمط محتوى القابلة للطي. ملاحظة: يُخفى بشكل افتراضي */
.content {
  padding: 0 18px;
  display: none;
  overflow: hidden;
  background-color: #f1f1f1;
}

الخطوة الثالثة - إضافة JavaScript:

var coll = document.getElementsByClassName("collapsible");
var i;
for (i = 0; i < coll.length; i++) {
  coll[i].addEventListener("click", function() {
    this.classList.toggle("active");
    var content = this.nextElementSibling;
    إذا (كان content.style.display === "block") {
      content.style.display = "none";
    } else {
      content.style.display = "block";
    }
  });
}

جرب بنفسك

تأثير طي معين (التحرك إلى الأسفل)

لإنشاء تأثير طي معين، يرجى إضافة max-height: 0وoverflow: hide وأيضاً max-height لإضافة انتقال إلى فئة اللوحة.

ثم، باستخدام JavaScript، عن طريق تعيين الخاصية max-height للتحرك إلى الأسفل في المحتوى، يعتمد على طول اللوحة في أبعاد الشاشة المختلفة:

مثال

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

جرب بنفسك

إضافة رمز

إضافة رمز إلى كل زر لتحديد ما إذا كان المحتوى القابس هو مفتوح أو مغلق:

مثال

.collapsible:after {
  content: "ـ٢٦٩"; /* 表示“加号”(+)的 Unicode 字符 */
  font-size: 13px;
  color: white;
  float: right;
  margin-left: 5px;
}
.active:after {
  content: "ـ٢٦٨"; /* 表示“减号”(-)的 Unicode 字符 */
}

جرب بنفسك