Mam kilka zdjęć na mojej stronie. Stwierdzam, że strona zaczyna się renderować przed załadowaniem obrazów (co jest dobre), ale efekt wizualny nie jest świetny. Początkowo użytkownik widzi to:Symbol zastępczy tła/obrazu podczas oczekiwania na załadowanie pełnego obrazu?
--------hr--------
text
Następnie kilka milisekund później strona wyskakuje to pokazać:
--------hr--------
[ ]
[ image ]
[ ]
text
Czy istnieje prosty sposób, że mogę pokazać szarym tle obraz dokładnie szerokość i wysokość, że obraz będzie zajmował, dopóki sam obraz się nie załaduje?
Czynnikiem komplikującym jest to, że nie wiem z góry wysokości i szerokości obrazów: są one responsywne i ustawione są na width: 100%
zawierającego element div. To jest HTML/CSS:
<div class="thumbnail">
<img src="myimage.jpeg" />
<div class="caption">caption</div>
</div>
img { width: 100% }
Oto JSFiddle do zilustrowania podstawowego problemu: http://jsfiddle.net/X8rTB/3/
Przyjrzeliśmy się rzeczy jak LazyLoad, ale nie mogę się oprzeć wrażeniu, że musi być prostsze, odpowiedź nie-JS. Czy też fakt, że nie znam wysokości obrazu z góry, jest problemem nie do pokonania? Znam proporcje obrazów.
Złóż pusty div z szarym tłem i ustawić wymiary, a następnie dodać zdjęcie jako 'background-image'? – Andy
Próbowałem, jak następuje, ale tak naprawdę nic nie robi: 'ul.options li {background: url (/ media/img/cont/filler.png); rozmiar tła: 100% 100%; } ' – Richard
Richard, nie używaj elementu listy, użyj elementu div zamiast' ', a następnie podaj mu ustawione wymiary (' wysokość: 200px; szerokość: 300px; ') i powinno działać – Andy