Beiträge von Sempervivum

    a) ist eine Aufgabe, die sehr häufig auftritt. Die althergebrachte Methode besteht darin, die Elemente oben und unten zu fixieren. Dann hat man das Problem, dass die Haupt-Inhalte zunächst verdeckt werden und man muss dies z. B. mit Margins lösen. Eine moderne Variante besteht darin, den Haupt-Container mit Flexlayout so einzurichten, dass er genau den freien Raum ausfüllt.

    Für die gescrollte Tabelle gibt es dann auch zwei Möglichkeiten: Wenn Du möchtest, dass die Scrollbar sichtbar ist und die Position anzeigt, kannst Du bei dem Verfahren bleiben, die Scrollposition zu animieren. Wenn Du auf die Scrollbar verzichten kannst, kannst Du die Tabelle ebenfalls mit der Webanimation-API scrollen.

    Zitat

    Nur hat mir noch niemand erklären können wie man den einen Hintergrund ohne Höhenangabe erstellt.

    I. allg. hat der betr. Container auch einen Inhalt in Form von Text, Bildern etc. Dann stellt sich die Höhe dem entsprechend ein und das Hintergrundbild passt sich an.

    Hat er keinen Inhalt, sehe ich keinen Sinn darin, ein Hintergrundbild zu verwenden, sondern Du kannst dann auch ein img-Tag nehmen, wo sich die Abmessungen automatisch einstellen.

    Selektor und Geschwindigkeit als Parameter, damit man mehrere Laufschriften verwenden kann:

    Kurzer Text auf breitem Fenster:

    Ich habe mal eine Demo, die ich früher mit Webanimation gemacht hatte, heraus gesucht und auf deine Gegebenheiten angepasst. Den Text habe ich durch das Script verdoppelt. Dadurch läuft er ohne Lücke endlos durch.

    Einschränkungen:

    • Der Text muss die Fensterbreite mindestens ausfüllen, andernfalls müsste man ihn mehr als ein Mal vervielfachen.
    • Ist verbesserungsfähig in Bezug darauf, dass man die wesentlichen Parameter als Parameter übergeben könnte, wahrscheinlich auch die Richtung.
    • Die Demo von früher enthielt ein Polyfill, ich habe nicht untersucht, ob man das heute noch braucht.
    Zitat

    a) da mit CSS die Animationen in Sekunden angegeben wird hatte zur Folge, dass bei kurzen Texten die Animation viel zu langsam war und bei langen Texten viel zu schnell.

    b) die "Berechnung" der Breite war mir nicht möglich. Daher wurde der Text dann entweder nicht ganz raus oder rein gescrollt

    Daher war ich auf JavaScript ausgewichen.

    Da bin ich voll bei dir. Reine CSS-Lösungen sind gut und schön, aber wenn es um Erweiterungen und Änderungen geht, ist es eine Qual, sie anzupassen.

    Es gibt jedoch die Webanimation-API:

    https://wiki.selfhtml.org/wiki/JavaScript/Animation

    Da kann man problemlos mit JS die Parameter der Animation berechnen und einstellen, z. B. die Dauer abhängig von der Länge des Textes.

    Wahrscheinlich geht es auch mit SQL aber mit einer einfachen Nachverarbeitung ist es sehr einfach. Ich habe es mit einem Mockup getestet:

    Code
    $result = [
        ['date' => '10.10.2020', 'name' => 'Faustus', 'punkte' => 99],
        ['date' => '03.10.2020', 'name' => 'Faustus', 'punkte' => 90],
        ['date' => '25.09.2020', 'name' => 'Faustus', 'punkte' => 75],
    ];
    $ref = $result[count($result) - 1]['punkte'];
    foreach ($result as &$row) {
        $row['diff'] = $row['punkte'] - $ref;
    }
    var_dump($result);
    Zitat

    Das margin-bottom: -200px; vom #wrapper wird ignoriert

    Bei mir wird es nicht ignoriert sondern der überlagerte Teil des #wrapper verschwindet unter dem #footer weil #footer nach dem #wrapper notiert wird. Gib dem #wrapper einen hohen z-index und ein position: relative; :

    Code
    #wrapper {
        width: 900px;
        margin: 0 auto;
        margin-top: -300px;
        margin-bottom: -200px;
        display: flex;
        flex-direction: row;
        z-index: 100;
        position: relative;
    }
    Zitat

    #footer_background hat einen größeren Abstand zu unterem Bildschirmrand ist aber dennoch fast richtig ausgerichtet.

    Das kann ich auf meiner Testseite nicht nachvollziehen.

    Da musst Du dem #footer noch ein position: relative; verpassen, damit der überlagerte Container relativ zu diesem ausgerichtet wird (so wie Du es in deinem Posting #5 schon hattest):

    Zitat von wakeme

    Bei dem Code wird die Grafik gar nicht angezeigt.

    Das liegt vermutlich hieran:

    Zitat von Sempvervivum


    Ich musste lediglich ... dem überlagerten, absolut positionierten, die Breite 100% geben, damit er sichtbar wird.

    Aber ohne das HTML kann man nur Rätsel raten ...

    Leider schreibst Du nicht, was denn genau nicht funktioniert. Dein CSS funktioniert bei mir einwandfrei, wenn ich eine Testdatei anlege. Ich musste lediglich einen main-Bereich hinzu fügen, um den Footer nach unten zu bekommen und dem überlagerten, absolut positionierten, die Breite 100% geben, damit er sichtbar wird.

    Gibt sicher auch andere Varianten, mit Flex ginge es auch, wenn man die überlagerte Grafik nicht absolut positioniert.

    Ja, mit Javascript geht es natürlich auch:

    Auf der Ausgangsseite die Links genau so.

    Auf der Reporting-Seite kannst Du den Dateinamen wie hier beschrieben aus der URL ermitteln:

    https://developer.mozilla.org/de/docs/Web/API/URLSearchParams

    Wenn du den Dateinamen hast, kannst Du im object-Tag das Attribut data setzen:

    Code
    document.querySelector('object').data = 'unterverzeichnis/' + dateiname;

    Würde auch mit Ajax gehen, aber so ist es einfacher.