Ich habe eine Liste von Diagrammen. Ich verwende Chart.js, um diese Diagramme zu erstellen. Da meine Liste 1 bis 100 oder mehr Einträge haben kann, wäre die Initialisierung aller Diagramme auf einmal nicht schlau, da dies das UI für eine lange Zeit einfrieren würde. Stattdessen dachte ich, es wäre viel besser, nur die Diagramme zu initialisieren, die innerhalb der Ansichtsgrenzen des Browsers sichtbar sind, so dass beispielsweise nur das erste Diagramm initialisiert wird und wenn der Benutzer nach unten scrollt und das zweite Zeichenfeld sichtbar wird Initialisierung und so weiter.Canvas: Erkennen, ob es im Browser sichtbar ist
Ich habe alles eingerichtet, aber das einzige Problem, das ich gerade habe, ist: Wie kann ich einen Eventlistener oder ähnliches erstellen, die ich jedem Canvas Element hinzufügen kann, das ausgelöst wird, wenn ein Canvas innerhalb der Ansichtsgrenzen des angezeigt wird browser, damit ich die Diagramminitialisierung für diese Leinwand durchführen kann?
['IntersectionObserver'] (https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API) könnte helfen. ([Polyfill] (https://www.npmjs.com/package/intersection-observer)) – gcampbell
Sie könnten Sie nicht initialisierte Diagramme in einem Array speichern, fügen Sie dann ein Bildlaufereignis auf Ihrer Seite hinzu und prüfen Sie, ob einer dieser nicht initialisiert ist Diagramme ist sichtbar. Dies könnte helfen: http://StackOverflow.com/a/36012192/3702797 – Kaiido