วิธีการ - มุมมองต้นไม้
เรียนรู้วิธีสร้างมุมมองแบบต้นไม้ด้วย CSS และ JavaScript
วิวต้นไม้
มุมมองแบบต้นไม้แสดงถึงมุมมองแบบลำดับชั้นของข้อมูล โดยที่แต่ละรายการสามารถมีรายการย่อยได้จำนวนหนึ่ง
คลิกที่ลูกศรเพื่อเปิดหรือปิดกิ่งไม้
- เครื่องดื่ม
- น้ำ
- กาแฟ
- ชา
- ชาดำ
- ชาขาว
- ชาเขียว
- เซนฉะ
- เกียวคุโระ
- มัทฉะ
- ปี่โหล่ชุน
วิวต้นไม้
ขั้นตอนที่ 1) เพิ่ม HTML:
ตัวอย่าง
<ul id="myUL">
<li><span class="caret">Beverages</span>
<ul class="nested">
<li>Water</li>
<li>Coffee</li>
<li><span
class="caret">Tea</span>
<ul
class="nested">
<li>Black Tea</li>
<li>White Tea</li>
<li><span class="caret">Green Tea</span>
<ul class="nested">
<li>Sencha</li>
<li>Gyokuro</li>
<li>Matcha</li>
<li>Pi Lo Chun</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
ขั้นตอนที่ 2) เพิ่ม CSS:
ตัวอย่าง
/* Remove default bullets */
ul, #myUL {
list-style-type: none;
}
/* Remove margins and padding from the parent ul */
#myUL {
margin: 0;
padding: 0;
}
/* Style the caret/arrow */
.caret {
cursor: pointer;
user-select: none; /* Prevent text selection */
}
/* Create the caret/arrow with a unicode, and
style it */
.caret::before {
content: "\25B6";
color: black;
display: inline-block;
margin-right: 6px;
}
/* Rotate the
caret/arrow icon when clicked on (using JavaScript) */
.caret-down::before {
transform: rotate(90deg);
}
/* Hide the nested list */
.nested {
display: none;
}
/* Show the nested list when the user clicks on the caret/arrow (with
JavaScript) */
.active {
display: block;
}
ขั้นตอนที่ 3) เพิ่ม JavaScript:
ตัวอย่าง
var toggler = document.getElementsByClassName("caret");
var i;
for
(i = 0; i < toggler.length; i++) {
toggler[i].addEventListener("click",
function() {
this.parentElement.querySelector(".nested").classList.toggle("active");
this.classList.toggle("caret-down");
});
}
ช่องทำเครื่องหมายมุมมองต้นไม้
ในตัวอย่างนี้ เราใช้ยูนิโค้ด "กล่องลงคะแนน" แทนเครื่องหมายคาเร็ต: