Beiträge von Sempervivum

    Wenn man versteht, wie es funktioniert, kann man das alles durch logische Überlegung herleiten.


    Das Layout ist immer noch ein wenig unsauber. Wenn ich ein display:none hinzu füge, sieht es besser aus. Und auf das flex-basis kann man dann verzichten:

    Code
    figure.hidden {
        /* flex-basis: 0; */
        display: none;
    }

    Was fehlt ist, dass Du das data-Attribut jetzt auch in das figure-Tag verschieben musst:

    Code
                      <figure data-filter="food">
                        <a data-fancybox="gallery" href="img/galerie/food/kul3.jpg">
                          <img src="img/galerie/food/kul3_t.jpg"alt="" />
                          <figcaption class="overlay">Tortilla</figcaption>
                      </a>
                      </figure>  

    Das liegt daran, dass das CSS ist und kein Javascript. Du musst es in deiner CSS-Datei eintragen. Und dann das JS so erweitern:

    (ungetestet)

    Das liegt daran, dass Du nur das img ausblendest, und nicht das gesamte figure. Bei dem figure wirkt dann das flex-basis: 350px; und es nimmt dennoch den Raum ein wie zuvor, auch wenn das Bild verschwunden ist. Setze das flex-basis für figure auf 0, dann wird es funktionieren.

    Noch besser: Setze im Javascript eine Klasse "hidden" und blende dann im CSS das figure aus:

    Code
    figure.hidden {
        flex-basis: 0;
    }

    Das war jetzt wirklich ein wenig eine harte Nuss!


    Der Schuldige ist das ul in dem Slider "Was sagen meine Kunden".

    Diesem weist Du eine Breite von 100% zu, damit es den umgebenden Container ausfüllt. Das Problem ist, dass dieses ul per Default ein padding hat. Das addiert sich zu der Breite, so dass sich mehr als 100% ergeben und die Breite des Browserfensters überschritten wird. Setze ich im Seiteninspektor das Padding auf 0 verschwindet die horizontale Scrollbar.

    Wenn Du den Filter, das wird ja wahrscheinlich eine Leiste mit Buttons werden, einfach im HTML dazwischen setzt, wird die Galerie nach unten rücken, Du brauchst nicht extra Platz zu machen.

    Zitat

    Vielleicht hast du ja eine Eingebung wie mich von den externen Scripts befreien kann.

    Du kannst sie einfach herunter laden, die URL im src-Attribut kopieren, in der Adresszeile des Browsers einfügen. Dann wird die Datei geladen und Du kannst sie mit Rechtsklick, "Speichern unter" lokal speichern.

    Ich nehme an, Du hast die Dateien von hier herunter geladen:

    GitHub - fancyapps/fancybox: jQuery lightbox script for displaying images, videos and more. Touch enabled, responsive and fully customizable.
    jQuery lightbox script for displaying images, videos and more. Touch enabled, responsive and fully customizable. - GitHub - fancyapps/fancybox: jQuery…
    github.com

    Und im dem Fall passt auch das, was Du auf deiner Seite hast. Warum es nicht funktioniert und wie man es korrigieren kann, habe ich nicht heraus gefunden. Aber anscheinend passt die Doku auf dieser Github-Seite nicht so richtig zu den Dateien, die dort liegen.

    PS: Außerdem hast Du ein leeres a-Tag im HTML, statt dessen muss dieses den Inhalte des figure-Tags umschließen:

    Code
                      <figure> 
                        <a data-fancybox="gallery" href="img/galerie/dog/dog1.jpg">
                            <img src="img/galerie/dog/dog1_t.jpg" alt="Gerdtrud" />
                            <figcaption class="overlay">Gerdtrud</figcaption>
                        </a>
                      </figure> 

    In der Doku wird angegeben, dass man das über CDN einbinden soll, d. h. im Head:

    Code
        <link
              rel="stylesheet"
              href="https://cdn.jsdelivr.net/npm/@fancyapps/ui@5.0/dist/fancybox/fancybox.css"
              />

    Und am Ende des Body:

    Code
        <script src="https://cdn.jsdelivr.net/npm/@fancyapps/ui@5.0/dist/fancybox/fancybox.umd.js"></script>
        <script>
          Fancybox.bind('[data-fancybox]', {
            // Your custom options
          });    
        </script>

    Versuche das zunächst so, wenn Du lieber unabhängig vom CDN sein willst, können wir das noch ändern.

    Wie oben, Fancybox. Bezüglich der Lizenz finde ich auf Github dies:

    Zitat

    Fancybox is licensed under the GPLv3 license for all open source applications. A commercial license is required for all commercial applications (including sites, themes and apps you plan to sell).

    GitHub - fancyapps/fancybox: jQuery lightbox script for displaying images, videos and more. Touch enabled, responsive and fully customizable.
    jQuery lightbox script for displaying images, videos and more. Touch enabled, responsive and fully customizable. - GitHub - fancyapps/fancybox: jQuery…
    github.com

    Ich lese da auf Github:

    Zitat


    A simple, flexible, responsive, retina-ready jQuery lightbox plugin

    Das bedeutet, dass Du jQuery vor nivo-lightbox.js einbinden musst.


    Ich frage mich jedoch ob es empfehlenswert ist, ein Skript einzusetzen, das nicht mehr gepflegt wird und wozu es keine Doku gibt.

    Was im CSS noch angepasst werden muss:

    das li muss durch figure ersetzt werden und dem figure-Tag müssen wir das margin nehmen:

    Und statt des ul ist jetzt das div unser Container für die Galerie und muss die Klasse "image-gallery" bekommen:

    Code
        <section id="galerie">
            <div class="image-gallery">
                <h1 class="heading-text">Gallerie</h1>
                <figure>