Problem mit lazyload

brizzi

Erfahrenes Mitglied
Hallo liebe Community,

ich habe ein kleines Problem mit einem von mir selbst geschriebenen Filtersystem bzw. dem darin integrierten Lazyload.

Da die Inhalte sehr umfangreich sind und sie alle iframes beinhalten (google maps), habe ich lazyload integriert um sie immer nur dann zu laden wenn sie auch im sichtbaren bereich sind.

Es funktioniert auch an sich, sprich es werden zunächst nur die iframes geladen, die auch zu sehen sein sollen. Das Problem ist nur, dass wenn ich etwas im Filter anwende und somit andere Inhalte angezeigt bekomme, die iframes erst geladen werden sobald ich anfange zu scrollen.

Villeicht kennt ja jemand eine alternative oder eine Lösung für mein Problem. Ich dachte da z.B. daran, dass das Lazyload nicht durch ein scrollen guckt ob sich neue Inhalte im sichtbaren Bereich befinden, sondern , dass es jede halbe Sekunde überprüft welche Objekte zu sehen sind. Oder dass das JavaScript einfach guckt bei welcher y Position die Inhalte sind und somit weiß ob diese nun geladen werden sollen oder eben nicht.

Ich habe jedoch keine Idee wie ich so etwas umsetzten kann. Vielleicht hatte ja mal jemand ein ähnliches Problem und weiß wie man ein Solches Script angehen muss.

mfg
brizzi
 
Das mit dem Scrollen ist Absicht:
lazyload hat gesagt.:
Lazy Load is delays loading of images in long web pages. Images outside of viewport are not loaded until user scrolls to them. This is opposite of image preloading.

Du könntest vielleicht deinen iframe mit einem Anker anspringen, wenn du im Filter etwas änderst.
Alternativ kannst du auch mit jquery dahin scrollen.
http://pixelbar.be/blog/mit-jquery-scrollen-gewusst-wie/
Oder du lädst dir den Quellcode von lazyload und fügst einen Refresh dazu.
Refresh mit jquery:
Javascript:
$('#reload').click(function() {
document.location.reload();
});
Refresh mit pure Javascript
Javascript:
document.getElementById(FrameID).contentDocument.location.reload(true);

Das ganze mit setIntervall alle x Sekunden aufrufen.
 
Zuletzt bearbeitet:
Das mit den ankern habe ich schon versucht aber da ich ungerne den User, nur durch eine Filterauswahl scrollen lassen will habe ich diesen Ansatz relativ schnell wieder verworfen.

Aber das mit dem refresh ist eine gute Idee, die funktionieren könnte. ich hoffe nur, dass nur das nur auf das lazyload wirkt und nicht die ganze Seite neu lädt.

Naja ich werde es auf jedenfalls gleich mal ausprobieren.
 
und nicht die ganze Seite neu lädt.
Das wird es wahrscheinlich tun. Auch das zyklische Aktualisieren gefällt mir nicht besonders. Versuch doch, herauszufinden, welche Funktion in deinem Lazy-Load-Skript die Aktualisierung bewirkt und ruf diese auf, wenn Du einen Filter angewendet hast.
 
Das wird es wahrscheinlich tun.

Dann spare ich mir lieber den Versuch und gucke mal ob ich nicht die Funktion im Script finde, die die Aktualisierung bewirkt. Habe zwar schcon mal kurz geguckt aber ehrlich gesagt nicht besonders genau, da ich auch nicht weiß ob ich es hinbekomme es sinnvoll und funktionierend abzuändern.

mfg
brizzi
 
Hey, ich habe die Zeile im lazyload script gefunden, die für das nachladen verantwortlich ist.

Code:
updateEvent: 'load orientationchange resize scroll touchmove focus', // page-modified events

leider habe ich keine Idee wie ich es erfolgreich abwandeln kann, damit es bei einer Auswahl des Filters nochmals überprüft welche divs im sichtbaren Bereich sind.

Vielleicht hat ja jemand von euch eine Idee

mfg
brizzi
 

Neue Beiträge

Zurück