10.042015

jQuery Snippet zum einblenden beliebiger Elemente

Oft braucht man eine kleine Funktion um Elemente auf einer Website ein- und auszublenden. Beispielsweise für Detailinformationen zu einem Video oder Text. Kürzlich habe ich ein kleines Snippet geschrieben um genau solche Aufgaben zu erledigen und das per Data-Attributen flexibel zu konfigurieren ist.

Das javaScript Snippet

function revealSomething(triggerSelector,activeClass) {
  var revealTarget = $(triggerSelector).attr("data-reveal-target");
  var revealMode = $(revealTarget).attr("data-reveal-mode");

  $(revealTarget).hide();
  $(triggerSelector).css({'cursor':'pointer'});

  $(triggerSelector).click(function(){
        if(revealMode == "slide") {
          $(revealTarget).slideToggle();
        } else {
          $(revealTarget).toggle();
        }
    $(this).toggleClass(activeClass);
  });
}

revealSomething(".js-reveal", "active");

 

Beispiel HTML

<button class="js-reveal" data-reveal-target=".js-reveal-container">Klick mich</button>
  <div class="js-reveal-container" data-reveal-mode="slide">
    <p>Lorem Ipsum</p>
  </div>

 

Erklärung

Der Button

Wir benötigen ein Trigger-Element, zum Auslösen des Einblendevorgangs mit der Klasse ".js-reveal" und dem Data-Attribut "data-reveal-target". Dieses Attribut enthält die Klasse des Elements das wir zeigen möchten.

Inhalts-Container

Der Klassenname des Inhalts-Containers muss mit dem, was wir als "data-reveal-target" bei dem Button angegeben haben, übereinstimmen. Außerdem kann man dem Container noch per "data-reveal-mode" Attribut sagen wie er eingeblendet werden soll (slide / toggle).

Code live ausprobieren

Zum Ausprobieren und rumspielen findet man das Snippet auf: http://jsbin.com/jabadiniji/3/edit?html,js,output
Der Vorteil des Snippets ist das freie Verteilen von Triggern und Containers auf einer Seite - ich wünsche viel Spass damit!