Neu wie kann ich Bilder im Content den Lazy Load effekt zuweisen ?

Conny

Sehr aktives Mitglied
7. September 2009
571
61
Wenn man z.B. auf der Startseite viele Bilder hat (Inhalte -> eigene Seiten), so möchte ich daß die Bilder auch "Lazy Load" Effekt haben.
Wie muss ich diese Bilder einfügen.
HTML:
<img
 alt="mein Testbild"
 data-src="media/image/product/1206/md/bild.jpg" 
data-id="1"
 style="max-height: 344px;"
 src="media/image/product/1206/md/bild.jpg"
>

Reicht es dafür das "data-src" Attribut zu füllen?
 

martinwolf

Offizieller Servicepartner
SPBanner
6. September 2012
3.695
350
Okay, mein Fehler. Bin davon ausgegangen, dass JTL das lazyLoad für sämtliche Bilder triggert. Dem ist jedoch nicht so, stattdessen greift es nur bei Bildern innerhalb der Artikellisten.
 

Conny

Sehr aktives Mitglied
7. September 2009
571
61
Ok. Aber das kann man doch bestimmt auch nachprogrammieren, dass es so funktioniert wie in den Artikellisten.
Muss ich da noch ein js einbinden ?
 

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
8.590
2.671
Berlin
Firma
css-umsetzung
Theoretisch ja, vorsichtshalber solltest du den Bildern noch eine Klasse geben, damit da nichts durcheinander kommt.
Als Klasse verwende ich hier jetzt mal lazyloader

Code:
$(function() {
  $("img.lazyloader").lazy(($(window).height() / 2), function() {
   // hier blabla wenn in der Zwischenzeit Schmetterlinge über den Bildschirm fliegen sollen
  });
});
 

martinwolf

Offizieller Servicepartner
SPBanner
6. September 2012
3.695
350
Ich würde den Selektor anpassen, sodass nur Bilder die noch KEIN src-Attribut haben, berücksichtigt werden.
Code:
$(function() {
  $("img:not([src])").lazy(($(window).height() / 2), function() {
   // hier blabla wenn in der Zwischenzeit Schmetterlinge über den Bildschirm fliegen sollen
  });
});
 

Conny

Sehr aktives Mitglied
7. September 2009
571
61
Hi, danke für die Hilfe

@martinwolf - Wie soll ich das Bild dann einbinden ?
HTML:
       <img alt="mein Testbild" class="lazy img-responsive" src="media/image/product/1206/md/bild.jpg" />

Und bei dem Script kann ich den Spinner angeben - wäre das so richtig?
HTML:
$(function() {
  $("img:not([src])").lazy(($(window).height() / 2), function() {
   // hier blabla wenn in der Zwischenzeit Schmetterlinge über den Bildschirm fliegen sollen
   <img src="preloader.gif />
  });
});
 

martinwolf

Offizieller Servicepartner
SPBanner
6. September 2012
3.695
350
@Conny:

Das Bild benötigt anstelle des src-Attributes ein data-src. Klasse brauchst du keine bestimmte zuweisen, da reicht img-responsive, damit das Bild responsive skaliert. Die Funktion triggert für alle Bilder die KEIN src-Attribut haben.

HTML:
<img alt="mein Testbild" data-src="media/image/product/1206/md/bild.jpg" />

Die JS Funktion kann auf ein Minimum reduziert werden:

JavaScript:
$(function() {
    $("img:not([src])").lazy();
});

Anders als von CSS-Umsetzung kommentiert, wird
// hier blabla wenn in der Zwischenzeit Schmetterlinge über den Bildschirm fliegen sollen
nicht während des Ladens ausgeführt, sondern danach. Es ist ein callback. Auch der Treshold ist nicht notwendig. Dieser sorgt nur dafür, dass die Bilder geladen werden, bevor diese um den entsprechenden Pixelwert in den sichtbaren Bereich einlaufen.
 
  • Gefällt mir
Reaktionen: nmueller

golvreven

Gut bekanntes Mitglied
1. Oktober 2020
273
22
Hallo Martin,

ich habe die JS-Funktion bei uns im Bereich "Custom Javascript" des Salepix Plugins hinterlegt. Danach habe ich testweise die Bildpfade von src auf data-src geändert. Leider werden die entsprechenden Bilder nicht geladen.

Beim zweiten Versuch habe ich die JS-Funktion angepasst, weil die Klasse img-responsive hinterlegt ist.

$(function() {
$("img.img-responsive").lazy();
});

Ich habe auch src="[Bildpfad]" neben data-src="[Bildpfad]" stehen lassen. Leider funktioniert es nicht. Eventuell muss die Funktion an anderer Stelle hinterlegt werden.

Viele Grüße
g.
 
Zuletzt bearbeitet:

golvreven

Gut bekanntes Mitglied
1. Oktober 2020
273
22
Hallo noch einmal,

es funktioniert jetzt! Ich habe die JS-Funktion von css-umsetzung hinterlegt:

$(function() {
$('img.[css-klasse]').lazy(($(window).height() / 2), function() {
//
});
});

Die Bilder werden per lazyload nun geladen, wenn sie nur mit data-src hinterlegt sind. Ein Stellvertreterbild verwende ich nicht. Die Lösung ist natürlich noch nicht optimal im Hinblick auf Layout Shifting.

Allerdings kann ich nicht für alle Content-Bilder sprechen. Grafiken, die im Head-Bereich und im Footer eingebettet sind, kann ich mit der Funktion nicht auf der Startseite ansprechen. Auf der Startseite werden die Bilder dann weiterhin nicht über den Pfad data-src gefunden. Woran kann das liegen?

Viele Grüße
g.
 

golvreven

Gut bekanntes Mitglied
1. Oktober 2020
273
22
Und noch eine Wortmeldung zu dem Thema.

Leider gibt es mit der oben genannten Lösung ein Problem bei paginierten Seiten. Wenn ich beispielsweise ein Bild im SEO-Text unter Artikellistings per lazyload laden lasse, wird dieses nicht mehr geladen, wenn ich auf die ursprüngliche Seite zurückkehre. Ich meine es so:

1. Aufruf einer ersten Seite eines Artikellistings mit Bild unterm Listing > Bild wird per lazyload geladen
2. Aufruf einer zweiten Seite eines Artikellistings
3. Rückkehr von der zweiten auf die erste Seite eines Artikellistings mit Bild unterm Listing > Bild wird nicht mehr geladen

Woran kann das liegen?

Viele Grüße
g.
 

golvreven

Gut bekanntes Mitglied
1. Oktober 2020
273
22
Probier mal diesen Funktion, innerhalb von $(document).ready(){ /*hier*/ } aufzurufen.
Hallo wspread,

das macht leider keinen Sinn. Denn dann werden beispielsweise die Bilder in Artikellistings oder Slidern GAR nicht geladen. Ich muss dazusagen, dass unser Template lazyload von vornherein ausführt, jedoch nur für Artikellistings und Slider. Diese Automatik wird durch Deinen Vorschlag wahrscheinlich ausgehebelt.

Mein Problem ist: Beim Zurückblättern scheint die vormals aufgerufene Seite mit Artikellisting nicht wieder komplett geladen zu werden, sodass die von mir ergänzte lazyload-Funktion nicht ausgeführt wird.

Viele Grüße
g.
 

frijk

Gut bekanntes Mitglied
16. Juni 2009
218
7
Grundsätzlich: gibt es eine ähnliche Funktion wie für Bilder auch für <picture>-Elemente? Also können die srcset auch per Lazy-Funktion nachgeladen werden?

Aktuell noch Shop4, Vorbereitungen auf Update für Shop5 laufen schon, dauert aber noch ein bischen...

Danke vorab!
 
Ähnliche Themen
Titel Forum Antworten Datum
Neu Amazon VCS Lite: Wie erstellt ihr unter Wawi 1.11 eine vollständige IGL-/ZM-Liste über alle Verkaufskanäle? User helfen Usern - Fragen zu JTL-Wawi 0
Neu Wie ändere ich das vorausgewählte Lager bei Bestellungen? User helfen Usern - Fragen zu JTL-Wawi 1
Wie übernehme ich Artikelnamen von JTL in den neuen Kaufland Niederlande-Verkaufskanal? JTL-Wawi 1.11 1
Neu Wie stelle ich Retouren in JTL für DPD ein? JTL-ShippingLabels - Ideen, Lob und Kritik 1
Neu Wie übertragt ihr Kurzbeschreibungen nach Shopify? Shopify-Connector 3
Neu Neuer Kundencenter Account. Wie verhält sich POS damit? Allgemeine Fragen zu JTL-POS 1
Wie lange braucht ihr aktuell für die Anlage eines neuen Artikels? JTL-Wawi App 3
Neu PayPal Transaktionsversuche – Wie hoch sind eure Ablehnungsquoten? Allgemeine Fragen zu JTL-Shop 1
Neu Helfen Lösungen wie Unicorn wirklich, um die teuren Preise bei JTL zu vermeiden? Amazon-Anbindung - Ideen, Lob und Kritik 1
APP - Wie Dashboard löschen? JTL-Wawi App 1
Neu Wie soll man Weiterleitungen einrichten Exat oder GET Allgemeine Fragen zu JTL-Shop 0
Für Ihren SQL-Server wurde ein Service Pack zur Verfügung gestellt - nö, gelogen, wie kriege ich die Meldung weg? JTL-Wawi 1.11 15
Mindestabnahme Lieferant - keine Kommazahlen erlaubt - Wie gehts? JTL-Wawi 1.11 0
Wie ist euer aktuelles Fazit zur 2.02? JTL-Wawi 2.0 14
Neu XRechnung, ZUGFeRD, Was hängt wie zusammen? User helfen Usern - Fragen zu JTL-Wawi 4
Neu Aktuellste unproblematische WAWI-Version finden - wie ? JTL-Wawi - Ideen, Lob und Kritik 6
Neu Bestände in-house und beim Lieferanten + Proforma-Rechnungen, wie? Arbeitsabläufe in JTL-Wawi 3
Neu Wie aktiviere ich den richtigen EK bei freiem Wareneingang? Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 0
Neu Streichpreise oder Rabatte für Staffelpreise von einem Artikel einrichten? Wie am Besten? JTL-Wawi 1.6 0
Neu POS im Kundencenter buchen, aber wie und wo? Allgemeine Fragen zu JTL-POS 2
Ein neuer Hersteller kann weder angelegt noch bearbeitet werden JTL-Wawi 1.11 7
Ameise (1.11.11.0) Export auf Clients nicht möglich - Das Dezimaltrennzeichen kann nicht die leere Zeichenfolge sein JTL-Wawi 1.11 5
Zugriff verweigert nach Umzug auf neuen Rechner, X-Rechnung kann nicht gespeichert werden JTL-Wawi 1.11 4
Neu Retourenetikett für Briefe kann unter Internetmarke 2.0 nicht erstellt werden JTL-ShippingLabels - Fehler und Bugs 5
Neu Widerrufsbutton: Jeder, der den Button betätigt, kann das Widerrufsformular ausfüllen und absenden - auch ohne Bestellung? Allgemeine Fragen zu JTL-Shop 94
Neu Konfigurator konfigurieren - ich schaffe es nicht Allgemeine Fragen zu JTL-Shop 2
Lizenz-Störung? Ich erhalte keinen Zugriff mehr zu meiner Wawi, egal welcher User JTL-Wawi 1.11 3
Neu Ich fühle mich unsicher! Smalltalk 13
Neu JTL Editionen / JTl Wawi / Shopify / Durchblick verloren Kosten / Was brauche ich wirklich User helfen Usern - Fragen zu JTL-Wawi 3

Ähnliche Themen