Πώς να δημιουργήσετε: Αναπτυσσόμενα με κλικ下拉菜单

Μάθετε πώς να δημιουργήσετε αναπτυσσόμενα με κλικ下拉菜单 χρησιμοποιώντας CSS και JavaScript.

Αναπτυσσόμενη με κλικ下拉菜单

Η αναπτυσσόμενη με κλικ下拉菜单 είναι ένα ανακτινευόμενο μενού που επιτρέπει στον χρήστη να επιλέξει μια τιμή από μια προκαθορισμένη λίστα:

δοκιμάστε προσωπικά

Δημιουργία αναπτυσσόμενης με κλικ下拉菜单

Δημιουργία μιας αναπτυσσόμενης με κλικ下拉菜单.

Βήμα 1 - Προσθήκη HTML:

<div class="dropdown">
  <button onclick="myFunction()" class="dropbtn">Διαδραστικό Κουτί</button>
  <div id="myDropdown" class="dropdown-content">
    <a href="#">Σύνδεσμος 1</a>
    <a href="#">Σύνδεσμος 2</a>
    <a href="#">Σύνδεσμος 3</a>
  </div>
</div>

πρότυπο εξήγησης:

Μπορείτε να χρησιμοποιήσετε οποιοδήποτε στοιχείο για να ανοίξετε την αναπτυσσόμενη λίστα, όπως το στοιχείο <button>, <a> ή <p>.

Χρησιμοποιήστε στοιχεία κουτί (όπως <div>) για τη δημιουργία της αναπτυσσόμενης λίστα και προσθέστε τους σύνδεσμους της αναπτυσσόμενης λίστα.

Χρησιμοποιήστε το στοιχείο <div> για να περιλαμβάνετε το κουμπί και το <div>, ώστε να χρησιμοποιείται το CSS για την ακριβή τοποθέτηση της αναπτυσσόμενης λίστα.

Βήμα 2 - Προσθήκη CSS:

/* Το κουμπί αναπτυσσόμενης λίστα */
.dropbtn {
  background-color: #3498DB;
  color: white;
  padding: 16px;
  font-size: 16px;
  border: none;
  cursor: pointer;
}
/* Το κουμπί της αναπτυσσόμενης λίστα όταν το ποντίκι είναι πάνω του ή όταν είναι εστιασμένο */
.dropbtn:hover, .dropbtn:focus {
  background-color: #2980B9;
}
/* Το στοιχείο κουτί <div> - Χρησιμοποιείται για τη τοποθέτηση του περιεχομένου της αναπτυσσόμενης λίστα */
.dropdown {
  position: relative;
  display: inline-block;
}
/* Το περιεχόμενο της αναπτυσσόμενης λίστα (προεπιλεγμένα κρυμμένο) */
.dropdown-content {
  display: none;
  position: absolute;
  background-color: #f1f1f1;
  min-width: 160px;
  box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
  z-index: 1;
}
/* Οι σύνδεσμοι εντός της αναπτυσσόμενης λίστα */
.dropdown-content a {
  color: black;
  padding: 12px 16px;
  text-decoration: none;
  display: block;
}
/* Μόνο όταν το ποντίκι είναι πάνω από το σύνδεσμο της αναπτυσσόμενης λίστα, αλλάζει το χρώμα του */
.dropdown-content a:hover {background-color: #ddd;}
/* Εμφάνιση κατανομής πτυχώμενης λίστας (όταν ο χρήστης κάνει κλικ στο κουμπί κατανομής πτυχώμενης λίστας, χρησιμοποιήστε το JS για να προσθέσετε αυτόν τον τύπο στο κουτί περιεχομένου .dropdown-content) */
.show {display:block;}

πρότυπο εξήγησης:

θέτουμε στυλ για το κουμπί κατανομής πτυχώμενης λίστας, όπως χρώμα φόντου, περιθώρια, εφέ αναβοσβήσματος κ.λπ.

.dropdown ο τύπος χρησιμοποιεί position:relative, όταν θέλουμε να τοποθετήσουμε το περιεχόμενο της κατανομής πτυχώμενης λίστας κάτω από το κουμπί κατανομής πτυχώμενης λίστας (χρησιμοποιώντας position:absolute)، είναι απαραίτητο.

.dropdown-content ο τύπος περιλαμβάνει την πραγματική κατανομή πτυχώμενης λίστας. Είναι προεπιλεγμένα κρυφή και θα εμφανιστεί όταν το ποντίκι αναβοσβήσει (βλέπε παρακάτω). Σημείωση: ο ελάχιστος πλάτος έχει ρυθμιστεί σε 160px. Μπορείτε να αλλάξετε αυτή την τιμή ανάλογα με τις ανάγκες σας. Σuggestion: Αν θέλετε το πλάτος του περιεχομένου της κατανομής πτυχώμενης λίστας να είναι ίσο με το πλάτος του κουμπιού κατανομής πτυχώμενης λίστας, μπορείτε να ρυθμίσετε το πλάτος στο 100% (και να χρησιμοποιήσετε στο μικρότερο οθόνη) overflow:auto για να ενεργοποιήσουμε τη σωρόληψη).

δεν χρησιμοποιούμε περιγράμματα, αλλά χρησιμοποιούμε shadow box προσδιορισμό, ώστε η κατανομή πτυχώμενης λίστας να φαίνεται σαν ένα "χαρτί". Επίσης χρησιμοποιούμε z-index ποστάστε την κατανομή πτυχώμενης λίστας μπροστά από άλλους στοιχεία.

Τρίτο βήμα - Προσθέστε JavaScript:

/* Όταν ο χρήστης κάνει κλικ στο κουμπί, εναλλάξτε την κατάσταση κρυψής και εμφάνισης του περιεχομένου της κατανομής πτυχώμενης λίστας */
function myFunction() {
  document.getElementById("myDropdown").classList.toggle("show");
}
// Αν ο χρήστης κλικάρει εκτός της κατανομής πτυχώμενης λίστας, κλείστε την κατανομή πτυχώμενης λίστας
window.onclick = function(event) {
  if (!event.target.matches('.dropbtn')) {
    var dropdowns = document.getElementsByClassName("dropdown-content");
    var i;
    for (i = 0; i < dropdowns.length; i++) {
      var openDropdown = dropdowns[i];
      if (openDropdown.classList.contains('show')) {
        openDropdown.classList.remove('show');
      }
    }
  }
}

δοκιμάστε προσωπικά

δικανή κατανομή πτυχώμενης λίστας

δοκιμάστε προσωπικά

κατανομή πλοήγησης με πτυχώμενη λίστα

δοκιμάστε προσωπικά

κατανομή αναζήτησης (φιλτράρισμα) με πτυχώμενη λίστα

δοκιμάστε προσωπικά

Σχετικές σελίδες

Εκμάθηση:μενού αναδυόμενα CSS

Εκμάθηση:Πώς να δημιουργήσω; μενού αναδυόμενα που αναρτάται