Javascript-Einblendung mit CSS-Transition verbinden

  • Da verschiebt sich nichts.

    Das Menü soll sich ja verschieben. Wenn das Logo nicht eingeblendet ist, dann soll das Menü ganz normal positioniert sein. Wenn das Logo eingeblendet ist, dann soll sich das Menü nach rechts verschieben.


    Ich habe jetzt mal ein Video gemacht.

    Zu sehen ist, dass die Animation an sich funktioniert. Wenn man aber den Div, also den störenden freien Platz ausblendet, dann funktioniert die Animation nicht mehr.

    Nicht wundern, wenn das alles ein wenig komisch aussieht, ich habe so gut wie alle Inhalte entfernt.

    Video entfernt.

  • Zitat

    Das Menü soll sich ja verschieben. Wenn das Logo nicht eingeblendet ist, dann soll das Menü ganz normal positioniert sein. Wenn das Logo eingeblendet ist, dann soll sich das Menü nach rechts verschieben.

    Ich denke, das verstehe ich jetzt. Nur wenn ich es richtig verstehe, sind wir dann genau da wo wir mit animierter Höhe und Breite und vertikaler Zentrierung waren. Moment, ich mache ein Fiddle ...

  • Ich denke, das verstehe ich jetzt. Nur wenn ich es richtig verstehe, sind wir dann genau da wo wir mit animierter Höhe und Breite und vertikaler Zentrierung waren. Moment, ich mache ein Fiddle ...

    Okay, dann habe ich das wahrscheinlich einfach falsch erklärt. Entschuldige bitte.

  • Sieh dir dies an, das müsste sein, was Du dir vorstellst:

    https://jsfiddle.net/Sempervivum/6jtr2vw7/2/

    Ja, so ungefähr. Aber das hatten wir ja vorhin schon einmal.

    Das Problem ist, dass das Bild von der linken oberen Ecke eingeblendet wird und nicht aus der Mitte heraus.

    Du hattest mir dann vorhin zwei Möglichkeiten genannt. Die 1. hat an sich funktioniert, jedoch wollte ich einfach zum Lernen und aus Schönheitsgründen die 2. nochmal ausprobieren, mit Opacity bzw. Scale zu arbeiten. Aber wenn ich eine Opacity bzw. Scale einbaue, ist das Menü dauerhaft nach recht verschoben, als wäre das Logo eingeblendet, ist es aber nicht. Wenn ich den Div dann ausblende, wie jetzt in deinem Code, dann funktioniert die Opacity-Animation nicht mehr. :P

  • Zitat

    Ja, so ungefähr. Aber das hatten wir ja vorhin schon einmal.

    Das Problem ist, dass das Bild von der linken oberen Ecke eingeblendet wird und nicht aus der Mitte heraus.

    Bei mir nicht, es wird von links und der Mitte (vertikal) eingeblendet. Was für einen Browser benutzt Du? Unterstützt diese vielleicht kein Flex?

  • Also, das mit dem aus der Mitte heraus einblenden funktioniert jetzt so weit, da hatte ich einen Fehler gemacht.


    Trotzdem würde mich interessieren, wie ich einen Effekt mit Opacity machen kann, der Div aber nur eingeblendet wird, wenn auch das Logo eingeblendet wird.

    Hast Du da eine Idee?


  • Nein, da habe ich leider keine Idee. Wenn das Div am Anfang ein display:none hat, funktioniert die Animation nicht, aus den Gründen, die bei Stackoverflow beschrieben werden. Und das display ist nicht animierbar.


    So, jetzt ist es spät genug für mich, gute Nacht!

  • Nein, da habe ich leider keine Idee. Wenn das Div am Anfang ein display:none hat, funktioniert die Animation nicht, aus den Gründen, die bei Stackoverflow beschrieben werden. Und das display ist nicht animierbar.

    Okay, dann belasse ich das bei der vorherigen Methode.


    So, jetzt ist es spät genug für mich, gute Nacht!

    Ich möchte mich aufrichtig für Deine Hilfe bedanken. Ich habe wenig Leute im Internet gesehen, die mir so ausführlich geholfen haben.

    Vielen Dank und eine gute Nacht. :)

  • Einen schönen Ostermontag! Ich habe mal eine Demo mit scale gemacht. War eine Sache von Minuten, jetzt wo ich weiß, wie es sein soll. Man muss:

    • Das Bild an Stelle des Containers mit scale verkleinern
    • Den Ursprung für die Transformation an die linke Kante legen
    • Zusätzlich den Container in der Breite verkleinern, damit die Inhalte rechts der Animation folgen

    https://jsfiddle.net/Sempervivum/s9a406gq/5/

    Vielen herzlichen Dank, das funktioniert wunderbar.

    Ebenfalls einen schönen Ostermontag!

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!