CSS: Bilddatei bei hover mittig zentrieren (mittig Gerät)

  • nextuser

    Klasse! Auch Dir recht herzlichen Dank für Deinen Input. Sorry, falle hin und wieder aus gesundheitlichen Gründen eine Zeit lang aus. Habe nun aber Deine Vorschläge hier eingebaut und bin wirklich positiv überrascht. Nun bloss noch letzte Frage: Wäre das auch ohne Klick (auf das kleine Bild) machbar, so dass das vergrösserte Bild "nur" schon bei "hover mouse" angezeigt wird? Aktuell ist ja noch zu klicken. Das müsste ich dann dem User bei jedem Bild noch mitteilen. Wenn sich das noch vermeiden liesse, wäre ich am Ziel meiner Wünsche, bzw. Vorstellungen. Sorry für meine Hartnäckigkeit ;)

    PS: Habe am Thread überhaupt nichts geändert, geschweige irgend etwas geschlossen, gar Dich gesperrt. Muss dann vom Betreiber der Site sein.

  • nextuser

    Sorry, falle hin und wieder aus gesundheitlichen Gründen eine Zeit lang aus.

    Macht doch nichts, alles Gute dir.


    nextuser

    Wäre das auch ohne Klick (auf das kleine Bild) machbar, so dass das vergrösserte Bild "nur" schon bei "hover mouse" angezeigt wird? Aktuell ist ja noch zu klicken. Das müsste ich dann dem User bei jedem Bild noch mitteilen. Wenn sich das noch vermeiden liesse, wäre ich am Ziel meiner Wünsche, bzw. Vorstellungen. Sorry für meine Hartnäckigkeit ;)

    Machbar wäre es schon.

    Das Problem ist ja, wie schon angesprochen, der "Zustand" Hover. Wenn das große z.B. das kleiner überlagert ect...

    Da wird man dann schon etwas mehr fabrizieren müssen, um alles abzudecken.


    Ich habe grad auch wenig Zeit, daher nicht oft hier.

    Vielleicht liefern die anderen einen Ansatz.

    Ansonsten schaue ich mal die Tage...

  • Sorry, hatte leider doch etwas länger keine Zeit gehabt als gedacht... Naja.


    Zurück zum Thema:


    Ich habe das ganze mal als Hover-Variante angepasst.

    Der Code ist natürlich noch zu optimieren & zu verkürzen, aber jetzt so auf die schnelle erstmal:



  • Hallo nochmal

    Habe zwischenzeitlich mit Eurer beider verschiedenen Versionen - auf meine eigenen Seiten - noch etwas rumgetüftelt und bin zum aktuellen Stand der Dinge gekommen.


    - Das Vergrössern einer kleinen Bilddatei ohne Klick, also nur "on hover", macht das Ganze sehr nervös. Dieser Ansatz von mir war nicht gut. Besser, dass geklickt werden muss. nextuser: Du hast es vor mir gewusst!


    - In der angefügten Version (Ausgang Tag # 15, Sempervivum) habe ich bloss css-Datei und js-Datei (inkl. Bilder) in separate Unterverz/Dateien ausgelagert, um dann auch in viele andere Seiten einbauen zu können.


    - Wunsch wäre nun noch - ich hab's leider nicht hinbekommen - dass Maus-Zeiger bei hovern über kleinem Bild zu "Plus-Zeiger" bzw. über grossem Bild zu "Minus-Zeiger" wird. Ansatz etwa wie nachstehend? (Mir ist klar, dass das nur für Bildschirm gilt).

    Code
       cursor: -moz-zoom-in;         bzw.        cursor: -moz-zoom-out;
       cursor: -webkit-zoom-in;      bzw.        cursor: -webkit-zoom-out;  
       cursor: zoom-in;              bzw.        cursor: zoom-out;


    - Beim Vergrössern/Verkleinern des Bildes ist eine gewisse Verzögerung realisiert. Das ist prima. Bloss, wenn ich den Wert (in cc-File)

    transition: all 1s linear; (?) ändere, kann ich auf der Seite keine Veränderung feststellen. Was habe ich (beim Verändern des Wertes "1s") falsch gemacht?


    - Bei Anzeige von vergrössertem Bild und Klick darauf, wird "langsam" ausgeblendet. Wenn ich aber bei vergrössertem Bild auf anderes, kleines Bild klicke, fehlt diese Verzögerung. Lässt sich das "zwischen" den Bildern auch realisieren?


    - Zuguter letzt noch die Frage nach "Responsive Design": Könnt Ihr mir helfen, das zu realisieren?

    Interessanterweise funktioniert auch das Antippen für Vergrösserung/Verkleinerung auf meinem Mobil (Galaxy S8/Android). Bloss der Wechsel (von vergrössertem zu anderem, kleinen Bild) bleibt ohne Effekt.


    Bin mir bewusst, dass das schon fast eine Frechheit ist, derart viel zu erbitten. Daher schon im Voraus herzlichen Dank für jegliche Ergänzungen!

  • Zitat

    - Bei Anzeige von vergrössertem Bild und Klick darauf, wird "langsam" ausgeblendet. Wenn ich aber bei vergrössertem Bild auf anderes, kleines Bild klicke, fehlt diese Verzögerung. Lässt sich das "zwischen" den Bildern auch realisieren?

    Da hast Du vollkommen Recht, dieser Code war ein erster Ansatz und ist in einigen Punkten noch verbesserungsfähig. Diesen Punkt sehe ich mir anschließend an.


    Zitat

    - Beim Vergrössern/Verkleinern des Bildes ist eine gewisse Verzögerung realisiert. Das ist prima. Bloss, wenn ich den Wert (in cc-File)

    transition: all 1s linear; (?) ändere, kann ich auf der Seite keine Veränderung feststellen. Was habe ich (beim Verändern des Wertes "1s") falsch gemacht?

    Bei ausgelagerten Dateien, sowohl CSS als auch JS, hat man öfters Probleme mit dem Cache: Der Browser holt die Datei aus dem Cache statt sie neu zu laden. Versuche, die Seite mit Strg+F5 neu zu laden, das erzwingt das Neuladen am Cache vorbei.


    Zitat

    - Wunsch wäre nun noch - ich hab's leider nicht hinbekommen - dass Maus-Zeiger bei hovern über kleinem Bild zu "Plus-Zeiger" bzw. über grossem Bild zu "Minus-Zeiger" wird. Ansatz etwa wie nachstehend? (Mir ist klar, dass das nur für Bildschirm gilt).

    Wie hast Du das denn versucht? Bei mir funktioniert es mit diesem CSS einwandfrei:

    Code
    img.small:hover {
        cursor: zoom-in;
    }
    
    figure.large:hover {
        cursor: zoom-out;
    }
  • Zitat

    - Bei Anzeige von vergrössertem Bild und Klick darauf, wird "langsam" ausgeblendet. Wenn ich aber bei vergrössertem Bild auf anderes, kleines Bild klicke, fehlt diese Verzögerung. Lässt sich das "zwischen" den Bildern auch realisieren?

    Versuche dieses Javascript. Es ist ein wenig kompliziert geworden. Die Alternative wäre gewesen, die Zeitdauer der Transition aus dem CSS auszulesen und mit setTimeout zu arbeiten.

  • Zwischendurch schon mal vielen herzlichen Dank. Für heute mache ich Feierabend, schaue mir aber die neuesten Inputs gerne so rasch wie möglich wieder an. Sorry, dass ich nicht so schnell bin, wie ihr das seid.

  • Sorry für die zeitliche Verzögerung. Habe - to be on the safe side - nochmals mit meinem eigenen ZIP (sv-15.zip) aus #24 angefangen und dann für je in unter den Browsern CHROME, FIREFOX und EDGE je einmal "sv-15-vorlage.html" und einmal (meine gesplittete Version) sv-15-split.html gestartet. Dann Deine cursor-CSS-Zeilen in beiden Varianten eingefügt. Attestiere: Klappt tadellos. Weiss nicht, wo ich mich da verfranst habe.

    Habe dann je neue Versionen unter ("sv-26/sv-26-vorlage.html" und "sv-26/tam-26-split.html" mit "tam-26-split.css" und "tam-26-split.js") angelegt und darin (in beiden HTML-Dateien) Dein neues JS aus #26 eingefügt.

    Stelle nun folgendes Verhalten fest. Der eigentliche Wunsch, nach Klick auf kleines Bild oben (Dorf) und vergrösserter Anzeige, mit Maus (von Dorf) auf "Tomate" fahrend, dass dann die Tomate sanft aufgezoomt wird. Das tut es noch nicht. Hingegen wird, nach erstem Klick auf "Dorf" und nach dessen Vergrösserung bei Klick an gleicher Stelle, also nach wie vor auf "Dorf", das Bild zuerst ein- und dann gleich wieder aufgezoomt. Was für mich auch in Ordnung wäre, das Bild mit Klick auf Thumb (eim ersten Klick vergrössern), dann bei zweitem Klick (nach wie vor auf Thumb) die Vergrösserung beenden. Aber sie danach gleich wieder vergrössern ist dann m. E. doch etwas too much ;)

    Übrigens: Habe mich erdreisted das in Datei "vorlage" fehlende "<head>"-Label einzufügen. Ebenso einen <title> mit der jeweilgen Eintrags-Nummer.

    Anbei neues ZIP mit sämtlichen Files + Screenshot.

  • Zitat

    nach dessen Vergrösserung bei Klick an gleicher Stelle, also nach wie vor auf "Dorf", das Bild zuerst ein- und dann gleich wieder aufgezoomt.

    ...

    Aber sie danach gleich wieder vergrössern ist dann m. E. doch etwas too much

    Das darf natürlich nicht sein, ich hatte das im Verlauf der Entwicklung aber auch. Möglicher Weise habe ich nicht den aktuellen Stand gepostet, ich werde mir das ansehen.

  • Ich habe mir das jetzt angesehen, funktioniert so weit einwandfrei. Wenn ein Bild groß ist, und man klickt auf das gleiche kleine wird verkleinert und gleich wieder vergrößert, wahrscheinlich ist es das, was Du meinst. Kann man leicht unterbinden, indem man prüft ob beide Bilder gleich sind:

    Weil der Browser eine relative URL zu einer vollständigen ergänzt, müssen wir konsequent mit getAttribute arbeiten damit die Vergleiche funktionieren, auch in dieser Zeile:

    Code
        // Bild in Overlay eintragen:
        largeImg.src = img.getAttribute('src');

    Natürlich würde es auch anders herum gehen: Konsequent mit der vollständigen URL arbeiten.

  • Nachtrag zu #25

    Zitat

    Wie hast Du das denn versucht? Bei mir funktioniert es mit diesem CSS einwandfrei:

    Habe - zur Sicherheit - nochmals mit meinem eigenen ZIP aus # 24 begonnen. Browser gestartet, Cache (CTRL-SHIFT-DEL ?) gelöscht und dann beide Seiten (sv-15-vorlage.htm und sv-15-split.htm) in je CHROME, FIREFOX und EDGE aufgerufen. Ich hatte so noch bei keinem der drei einen veränderten Mausanzeiger bekomme. Habe dann Deine CSS-Zeilen (für den Cursor) aus #25 am Ende Deiner <style>-Anweisungen, bzw. extern in meine CSS-Datei eingefügt. Und natürlich hattest Du recht, jetzt klappt es. Muss mich da wohl verheddert haben. Dieser Punkt also erledigt.

  • Und gleich noch Bestätiung zu #30:

    Wechsel von einem (vergrösserten) Bild zu einem anderen klappt jetzt auch prima, ebenso wie das entsprechende "ein- und wieder auszoomen". Damit auch dieser Punkt für mich erledigt, abgesehen von der Frage in #24 (Code-Box): Wie ist das mit den Eintragungen (Hacks?) für andere Browser à la -moz-*, -webkit-*, -ms-* und -o-* ?


    Betreffend "Reload": Da es mir immer wieder passiert ist, dass ich mir (nach Upload einer neuen Version) dennoch die Vorgänger-Version angeschaut hatte, habe ich dann in den (Menü -> Weitere Tools -->) Entwicklertools auf Registerkarte "Netzwerk" die Option "Cache deaktivieren" ge-flagt. Merkwürdigerweise bin ich aber trotzdem davon überzeugt, hin und wieder - hier im Beispiel Chrome - eine "Vorgänger-Version" angezeigt zu bekommen. Mein Provider meinte dann auf Anfrage, dass ein "Vorhalten" einer älteren Version einer Datei bei ihnen nicht möglich sei. Macht jemand ähnliche Erfahrungen und falls, wie kann ich diesen "nicht vorhandenen Cache" definitiv ausschalten?

  • Guten Morgen, auch ein früher Vogel? ;)


    Zitat

    wie kann ich diesen "nicht vorhandenen Cache" definitiv ausschalten?

    Was zuverlässig funktioniert, ist ein Anhängsel an die URL:

    Code
        <link rel="stylesheet" type="text/css" href="css/tam-26-split-2.css" />

    Und dann nach jeder Änderung erhöhen.

  • Und gleich noch Bestätiung zu #30:

    Wechsel von einem (vergrösserten) Bild zu einem anderen klappt jetzt auch prima, ebenso wie das entsprechende "ein- und wieder auszoomen". Damit auch dieser Punkt für mich erledigt, abgesehen von der Frage in #24 (Code-Box): Wie ist das mit den Eintragungen (Hacks?) für andere Browser à la -moz-*, -webkit-*, -ms-* und -o-* ?

  • @ sempervivum: prä-senile Bettfluch! ;)

    Dachte eigentlich, würde das so auch anwenden. Allerdings schenke ich mir von Fall zu Fall eine neue Thread-Nr, wenn es nur um ein paar wenige Zeichen geht, zumal dann ggf. auch diverese andere Files neu durchzunummerieren wären (css, script, img-files in anderen sub-dirs, etc.). Aber danke für den Hint anyway.

Jetzt mitmachen!

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