Tym razem pokażę wam jak zrobić bardzo prosty akordeon czyli rozwijane i zwijane pola z tekstem (Collapsibles, Accordion). Element ten pozwoli nam rozmieszczać tekst na stronie w przyjazny sposób dla docelowych użytkowników.
Odpowiedz jest dość prosta – aby od razu nie wyświetlać całej treści. Dzięki czemu automatycznie strona wydaje się krótsza i nie odstrasza potencjalnych odbiorców. Jednocześnie jeżeli osoba odwiedzająca stronę chce dowiedzieć się czegoś więcej jedyne co musi zrobić to kliknąć w odpowiedni przycisk. W tedy automatycznie rozwinie się pole z do tej pory ukrytą przed jego oczami treścią.
Do tworzenia akordeonów na stronie można wykorzystać różne biblioteki i frameworki. Dzięki czemu można tworzyć naprawdę zróżnicowane efekty. Kilka przykładowych opisałam już wcześniej na blogu:
Nie pokazałam jednak jak w łatwy sposób można uzyskać podobny efekt mniejszy nakładem i z niższego pułapu.
Do budowy prostego akordeonu będzie nam potrzebna znajomość podstaw:
Ułatwi wam to ewentualną rozbudowę akordeonu o kolejne elementy oraz zmianę wyglądu.
Na początek stworzymy strukturę całego akordeonu w HTML:
<button class="accordion">Section 1</button>
<div class="panel">
<p>Nemo enim ipsam voluptatem, quia voluptas sit, aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos, qui ratione voluptatem sequi nesciunt, neque porro quisquam est</p>
</div>
<button class="accordion">Section 2</button>
<div class="panel">
<p>Sed ut perspiciatis..</p>
</div>
<button class="accordion">Section 3</button>
<div class="panel">
<p>Lorem ipsum...</p>
</div> W tym przykładzie mamy 3 rozwijane pola. Nagłówki tych pól stworzyłam w formie przycisku (<button>), ale można je zmienić np. na <div> (będzie to jednak wymagało zmian w kodzie CSS i JS). Treść jaką chcemy umieść w rozwijanym polu umieszczamy zaś w <div class="panel"></div>.
Teraz zajmiemy się wyglądem naszego akordeonu do tego celu potrzebne nam będzie CSS.
.container{
max-width:1200px;
margin:0 auto;
}
.accordion {
background-color: #eee;
color: #444;
cursor: pointer;
padding: 18px;
width: 100%;
text-align: left;
border: 1px solid #ccc;
outline: none;
transition: 0.4s;
}
/* dodaje efekt hover i reaguje na dodanie klasy active przez JS */.active, .accordion:hover {
background-color: #ccc;
}
/* chowa, ukrywa obiekt z klasą panel */.panel {
padding: 0 18px;
background-color: #eee;
display: none;
overflow: hidden;
} Teraz musimy uruchomić akordeon, czyli dodać efekt dzięki, któremu panele po kliknięciu w przycisk będą się otwierały / wysuwały i chowały.
var acc = document.getElementsByClassName("accordion");
var i;
for (i = 0; i < acc.length; i++) {
acc[i].addEventListener("click", function() {
/* Dodaj lub usuń klasę "active" po kliknięciu w przycisk */ this.classList.toggle("active");
/* Zmień pomiędzy zwiniętym a rozwiniętym */ var panel = this.nextElementSibling;
if (panel.style.display === "block") {
panel.style.display = "none";
} else {
panel.style.display = "block";
}
});
} Powyższy kod powinien uruchomić akordeon. W kodzie umieszczone są notatki na temat tego jaką funkcję pełni dana część kodu.
See the Pen Accordion by Aura (@Julka85) on CodePen.
Jak w przypadku wielu różnych tematów tak i w przypadku marki osobistej pojawiło się przez…
Choć zabrzmi to może nieco dziwnie to wprowadzenie AI (sztucznej inteligencji) do naszego życia było…
Widmo Brockenu to dość rzadko spotykane zjawisko optyczne, najczęściej widywane w wysokich partiach gór. Można…
Zacznę może od tego, że relikwia, relikwii nie równa. Wiem jeśli nie ma się pojęcia…
Logo stanowi jeden z ważniejszych elementów tożsamości wizualnej praktycznie każdej firmy, marki czy projektu. Logo…
Budując własną markę osobistą lub chcąc ją zbudować trzeba liczyć się z wieloma wyzwaniami. Jednym…
View Comments
Czy taki prosty akordeon z HTML, CSS i JS sprawdzi się też na stronach opartych o WordPressa, np. w treści wpisu lub na landing page?
Raczej nie jest zalecane by taki kod dodawać w treści wpisu WordPress. Przemawia za tym kilka powodów np.:
1. Kod może nie zostać prawidłowo obsłużony i wywołać błąd we wpisie
2. Podczas jednego z kolejnych zapisów kod może zostać uszkodzony. Mnie się kiedyś taka sytuacja zdarzyła, firma hostingowa uznała w tedy, że mam wirusa i wyszła dość nie przyjemna sytuacja.
3. Wpis może się dłużej ładować.
Czasami jednak twórcy motywów WordPress wpinają podobne kody w sama motyw by móc z niego później z niego korzystać w dowolnym miejscu. Niektórzy też dodają takie kody za pomocą odpowiednich wtyczek do JS (taką opcję ma np. Head, Footer and Post Injections - ja go aktualnie na stronie używam).
Większość osób decyduje się jednak na użycie wtyczek z gotową opcją.