2012-11-23 11 views
7

Ich habe ein Problem mit Firefox. Auf meiner Website habe ich viele Bilder. Wenn ich in Firefox die Seiten durchblättere, werden Rahmen und Bildtitel angezeigt, während das Bild geladen wird. Sobald der Download beendet ist, verschwindet dieser Rahmen/Titel und wird durch ein Bild ersetzt.Rand und Titel während des Ladens von Bildern in Firefox

Dies geschieht nur in Firefox. Chrome und andere Browser laden Bilder ohne Ränder und Titel, die viel "sauberer" aussehen. In Worten sind diese von Firefox erzeugten Grenzen hässlich.

Kann ich das entfernen, durch einen Lader oder etwas dieser Art ersetzen? Ich habe versucht, css loader mit background-image hinzuzufügen: url() ... denke, dass diese Grenzen nicht sichtbar sein werden, aber sie sind immer noch da.

Wie liefern Websites wie pinterest, dribbble und andere Bilder ohne Rand in Firefox?

Danke

Border in Firefox while image is loading

+0

Zeile 32 Ihres CSS löschen. – Rob

Antwort

14

Sie die :-moz-loading psuedo-class es erscheint nicht einstellen können, um. So etwas sollte funktionieren:

img:-moz-loading { 
    visibility: hidden; 
} 

Eine Alternative dazu so etwas wie ein AJAX Laden Skript, das das Bild im Hintergrund geladen wird und einen Lade Dialog oder eine Animation angezeigt werden soll. Dafür gibt es viele Techniken. Die Suche hier oder bei Google sollte viele, viele Ergebnisse hervorbringen, wie dies effektiv durchgeführt werden kann.

+0

Brilliant! Das hat mein Problem gelöst. Ich danke dir sehr. :) –

+0

Auf der Seite zitiert die Pseudo-Klasse * nicht * Elemente im Prozess des Ladens, so würde es nicht das Phänomen für ein größeres Bild, das Zeit zum Laden braucht entfernt. –

+0

@ JukkaK.Korpela Ja, das ist richtig. Aber nachdem wir damit begonnen haben, Daten zu erhalten, wird diese Pseudo-Klasse nicht länger gültig sein. Wenn die Bildanforderung noch keine Antwort erhalten hat und keine Bilddaten angezeigt werden sollen (und stattdessen der Alt-Text/Rahmen angezeigt wird), gilt dies. – Ktash

0

Sie müssen nicht explizit auf Laden mit CSS warten. Sie können dies auch in Javascript tun.

var img = document.getElementById("some-image"); 
    img.style.display = "none"; 
    //... 
    //add to dom etc... 
    //.. 
    img.onload = function() { 
     img.loaded = true; 
     img.style.display = "inherit"; 
    } 
Verwandte Themen