如何创建:树视图
- Σελίδα προηγούμενης σελίδας Κλάση ενεργοποίησης
- Σελίδα επόμενης σελίδας Αφαίρεση δεκαδικών
学习如何使用 CSS 和 JavaScript 创建树视图。
树视图
树视图表示信息的层次结构视图,其中每个项目可以有多个子项目。
单击箭头可打开或关闭树分支。
- Beverages
- Water
- Coffee
- Tea
- Black Tea
- White Tea
- Green Tea
- Sencha
- Gyokuro
- Matcha
- Pi Lo Chun
树视图
第一步 - 添加 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>
Δεύτερο βήμα - Προσθήκη CSS:
/* Αφαίρεση προεπιλεγμένων σημείων κατατάξεως */ ul, #myUL { list-style-type: none; } /* Αφαίρεση περιθωρίου και εσωτερικού περιθωρίου από το γονικό ul */ #myUL { margin: 0; padding: 0; } /* Ρύθμιση στυλ του caret/αρβύλου */ .caret { cursor: pointer; user-select: none; /* Προφύλαξη επιλογής κειμένου */ } /* Χρήση unicode για τη δημιουργία του caret/αρβύλου και ρύθμιση του στυλ */ .caret::before { content: "\25B6"; color: black; display: inline-block; margin-right: 6px; } /* Όταν κάνει κλικ στο εικονίδιο caret/αρβύλου, γυρίζει το εικονίδιο (χρησιμοποιώντας JavaScript) */ .caret-down::before { transform: rotate(90deg); } /* Κρυψη υποκατάστασης λίστας */ .nested { display: none; } /* Όταν ο χρήστης κάνει κλικ στο caret/αρβύλο, εμφανίζεται η υποκατάσταση λίστα (χρησιμοποιώντας JavaScript) */ .active { display: block; }
Τρίτο βήμα - Προσθήκη 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"); }); }
Επιλογή δέντρου
Σε αυτό το παράδειγμα, χρησιμοποιούμε μια 'θυρίδα ψηφοφορίας' unicode αντί για caret:
Παράδειγμα
- Σελίδα προηγούμενης σελίδας Κλάση ενεργοποίησης
- Σελίδα επόμενης σελίδας Αφαίρεση δεκαδικών