2017-01-02 5 views
1

Ich verwende das lazyload Plugin zum Laden aller Bilder in meinem Web. Diese Bilder sind jeweils in einem Div mit einigen Beschreibungen und Schaltflächen enthalten.Lazyload: div nur anzeigen, wenn es enthalten ist Bild lädt

<div class="container"> 
<h5>blablabla</h5> 
<img class='lazy' data-original="http://example.gif" src=""> 
<form method="post" action='#'> 
    <input type="submit" value='add'> 
    ... 
</form> 
</div> 

<div class="container"> 
.... 
</div> 

... 

Es funktioniert, aber ich mag die ganze div verbergen, bis es vollständig konnte ich jeden Hinweis nicht gefunden, leider geladenes Bild ist, wie es zu erreichen. Ist es möglich?

Edit: Ich konnte es immer noch nicht funktioniert, so habe ich eine jsfiddle gehofft, dass Sie mir zeigen könnte, was da schief geht. Wenn Sie die display:none Lazyload-Arbeit mit allen Bildern kommentieren, bleiben die divs immer verborgen.

Solution

Antwort

1

Sie könnten die img Elemente standardmäßig ausgeblendet machen, und dann auf die load() Ereignis der Bilder, um sie zu zeigen Haken:

.container img { visibility: hidden; } 
.container img.show { visibility: visible; } 
$('.container img').on('load', function() { 
    $(this).addClass('show'); 
}); 

Working example

+0

Bitte, Scheck Änderungen. – vivoconunxino

+0

mmm das ist nicht lazyloading all das Div, nur das Bild: https://jsfiddle.net/9aopngmr/5/ (Ich habe eine Auszeit hinzugefügt, so dass wir es merken können) BTW, Sie zeigten mir die richtige Richtung: https : //jsfiddle.net/9aopngmr/4/ Bitte denken Sie darüber nach, das Arbeitsbeispiel zu aktualisieren, damit ich Ihre Antwort annehmen kann. Und vielen Dank! – vivoconunxino

+0

Gut zu helfen. Außerdem werden nur Bilder geladen, weil Sie beim Initialisieren des Lazyload-Plugins nur "img.lazy" ausgewählt haben. –

Verwandte Themen