Beiträge von Sempervivum

    Ja, mit CSS hatte ich früher auch meine Probleme aber im Laufe der Zeit habe ich einiges dazu gelernt und kann es jetzt ganz gut handhaben. Vieles finde ich immer noch unlogisch, z. B. dass es kaum möglich war, etwas vernünftig vertikal zu zentrieren (was jetzt durch Flexlayout kein Problem mehr ist) und kuriose und unerwartete Effekte durch margin-collapse oder baseline-alignment.

    Ohne die Hintergrundgrafik erkennt man dein Bild nicht wieder und die Schrift ist unsichtbar, da weiß auf weiß. aber man kann auch ohne das erkennen: Du bringst da etwas durcheinander: align-items gehört zum Flexlayout und ist nur wirksam, wenn auch dispay:flex gesetzt ist. Benutze text-align statt dessen für beide Überschriften, dann werden sie horizontal zentriert. Und das margin-left bei der ersten Überschrift musst Du dann weg lassen.


    Und wahrscheinlich ist es besser, die Grafik als Hintergrund anzulegen, dann brauchst Du die Überschriften nicht mit negativem marging darüber zu verschieben. position:relative ist überflüssig, wenn Du sie mit margin verschiebst.

    Wenn Du von Effekten sprichst, meinst Du dann Animationen? Man kann dann sehr viel mit CSS machen. Und für das was damit nicht geht, ist jQuery zu empfehlen. Das Stichwort "Animationen" macht es auch leicht, die Frage nach der Version von jQuery zu beantworten: AFAIK arbeiten erst die 3-er Versionen mit requestAnimationFrame und nach Expertenmeinung ist das sehr zu empfehlen.

    Die Frage nach dem Browser-Support kann ich leider nicht beantworten.

    Zitat

    Aber da ich ja das Ziel habe, JS als solches zu lernen, wäre es meiner Meinung nicht der richtige Weg, direkt sowas wie jQuery einzusetzen, das einem alles erheblich einfacher macht und eigentlich nicht mehr so extrem viel mit der Sprache zu tun hat.

    Ich bin schon 64 und das erinnert mich an Diskussionen in den 80-ern des vergangenen Jahrhunderts, wo darüber debattiert wurde, ob man gleich in eine Hochsprache wie C einsteigen, oder erst Mal Assembler lernen sollte. Heute redet niemand mehr von Assembler oder dass man zum Programmieren wissen muss, wie ein Prozessor funktioniert.

    Oh, jetzt sind wir in eine Falle getappt, in die schon viele hinein getappt sind. Hier ist beschrieben, warum es so nicht funktioniert und es sind einige Lösungen angegeben:

    http://www.webdeveloper.com/fo…For-loop-not-working-help

    Da Du jQuery nicht möchtest, kommt wohl nur die Lösung aus Posting #3 in Fragen. Würde dann so aussehen:

    Code
            var skills = document.querySelectorAll('.skill');
            for (var i = 0; i < skills.length; i++) {
                document.addEventListener('scroll', function (idx) {
                    return function () {
                        var skill = skills[idx];
                        animate(skill, skill.clientHeight);
                    };
                }(i));
            }

    Der Fehler liegt hier:

    Code
    document.addEventListener('scroll', animate(element, element.clientHeight))

    So weist Du den Returnwert der Funktion animate()als Callback zu, Du musst jedoch eine Funktion zuweisen.


    So funktioniert es:

    Code
                document.addEventListener('scroll', function () {
                    animate(element, element.clientHeight);
                });

    Obacht: forEach für eine Nodelist wird von IE nicht unterstützt:

    https://developer.mozilla.org/…/Web/API/NodeList/forEach

    Zitat

    Das bedeutet ich müsste die Dateien dann 0.jpg, 1.jpg .... - 12.jpg benennen.

    Das wäre eine Möglichkeit. Mein Code im Original erfordert jedoch gar keine bestimmte Benennung sondern liest einfach die Dateien aus dem Verzeichnis und zeigt sie Tag für Tag an. Eine Nummerierung ist nur erforderlich, wenn Du eine bestimmte Reihenfolge erzwingen willst.

    Zitat

    Den kleineren Artikeln würde ich sobald ich diese alle in einer Reihe nebeneinander habe zum "wischen", einfach die gleiche höhe geben und ein width: auto

    Das ist sicher eine gute Lösung. Sie sind dann in der Horizontalen schön ausgerichtet.

    Glückwunsch zum ersten PHP-Skript!

    Du hättest dir die Sache einfacher machen können, wenn Du die Funktionen file_get_contents() und file_put_contents() verwendet hättest. Damit kann man mit einer einzigen Anweisung eine Datei lesen oder schreiben.


    Mit meinen Hinweisen wollte ich auf so etwas hinaus:

    Code
        $now = time();
        $basedate = strtotime("2017-01-01");
        $datediff = $now - $basedate;
        $days = floor($datediff / (60 * 60 * 24));
        $imgs = glob("images/*.jpg");
        $idx = $days % count($imgs);
        echo '<img src="' . $imgs[$idx] . '">';

    Jetzt habe ich mir die Seite angesehen. Das responsive Verhalten funktioniert schon sehr gut. Ein kleiner Mangel besteht noch darin, dass die Bilder auf einem schmalen Bildschirm verzerrt werden. Ich habe mir die Seite auch auf meinem Samsung S4 angesehen und dort passt ebenfalls die Anordung aber die Verzerrung ist deutlich. Man kann sie beheben, indem man die feste Höhe im CSS löscht, aber dann wird wird leider das ganze Layout zerstört, weil die Bilder kein einheitliches Format haben. Eine Lösung dafür mit CSS kenne ich nicht, Mein Wissen geht dahin, dass man das Seitenverhältnis nur beibehalten kann, wenn man sich an den natürlichen Abmessungen des Bildes orientiert.


    Zwei Lösungen sehe ich:

    1. Die Bilder, die nicht passen, mit PHP auf die richtige Größe bringen.
    2. Die Höhe mit Javascript dynamisch einstellen, so dass das Seitenverhältnis erhalten bleibt.


    In Posting #47 hast Du geschrieben, dass Du die kleinen Bilder gern in einer Reihe nebeneinander haben möchtest. Hast Du das wieder verworfen?

    Zitat

    Ich würde gerne auf dem Handy die vier kleineren Zufallsartikel in einer Reihe haben, aber in der aktuellen Größe.

    Sodass man diese von links nach rechts und andersherum wischen kann, ich hoffe das ist verständlich ausgedrückt.

    Ich empfehle, dass Du dich über Flexlayout informierst. Ich benutze immer diese Seite:

    https://css-tricks.com/snippets/css/a-guide-to-flexbox/

    Ausrichtung nebeneinander ist Standard für einen flex-Container, ebenso flex-wrap:nowrap. Damit hättest Du schon alle Artikel in einer Reihe und kannst sie auf dem Handy durch Wischen bewegen.

    Es hat mich heraus gefordert, dein Layout responsiv zu machen, ohne dass die Bilder verzerrt werden und dies ist dabei heraus gekommen:

    https://jsfiddle.net/Sempervivum/hvo59tyq/11/

    Zitat

    .. habe soeben gemerkt, dass es auf anderen Geräten, in diesem Fall mein Smartphone, nicht funktioniert wie gedacht..


    aber da muss ich dann morgen nochmal ran.

    Ja, eine Seite responsiv und mobiltauglich zu machen, ist eine Herausforderung für sich. Ich sehe, Du hast schon die Darstellung abhängig von der Fensterbreite umgeschaltet. Leider werden dann die Bilder vom Seitenverhältnis her verzerrt. Da gibt es sicher noch zu tun.

    Meine Homepage:

    http://ulrichbangert.de

    Wie Du siehst, geht es vor allem um die Präsentation meiner Fotos. Weil das Interesse begrenzt ist, habe ich sie in letzter Zeit nur noch wenig gepflegt und meine Fotos mehr bei Facebook gepostet:

    https://www.facebook.com/ulrich.bangert.9


    Außerdem kann ich dir zwei kleinere Skripte zeigen, die ich für Forenbesucher gemacht habe:

    http://ulrichbangert.de/div/we…nvas_colorize_roof_5.html

    Da kann man Elemente in einem Bild verschieden einfärben ohne für jede Farbe ein eigenes Bild zu brauchen.


    http://ulrichbangert.de/div/we…/jcanvas-drawing-pad.html

    Dies ist ein Zeichenbrett mit HTML5-Canvas. Wurde auch mal in einem Forum nachgefragt und ist dann im Sande verlaufen.


    http://www.nachrichtentisch.de

    Dies ist nicht meine Seite aber ich habe den Betreiber beim Skripting unterstützt. Was man in den Feldern sieht, sind Nachrichtenfeeds, die von den Zeitungen zur Verfügung gestellt werden und auf dieser Seite gesammelt angezeigt werden.

    Zitat

    Ich arbeite weiterhin mit dem Standard Windows Editor.

    Dann ist es sehr einfach: Bei "Speichern unter" findest Du links neben dem Button "Speichern" ein Dropdown-Menü für die Zeichenkodierung.

    Zitat

    Was bedeutet die Datei als UTF 8 speichern?

    Das bedeutet, dass Du, wenn Du deine Dateien speicherst, in deinem Editor eine bestimmte Zeichenkodierung, in diesem Fall UTF-8, einstellen musst. Bei mir (Visual Studio) wird ein entspr. Menüpunkt bei "Speichern unter" sichtbar, aber weil ich deinen Editor nicht kenne, kann ich dir dazu keine Hinweise geben. Möglicher Weise ist es auch irgend wo in den Einstellungen versteckt.


    Diese Seite sieht doch schon sehr gut, dafür brauchst Du dich doch nicht zu entschuldigen.


    Mir fällt auf, dass die Bilder in dem Raster noch nicht zufällig sind. Hast Du noch nicht mehr als vier Artikel?