У меня есть список графиков. Я использую Chart.js для создания этих диаграмм. Поскольку у моего списка может быть от 1 до 100 или более записей, инициализирующих все графики сразу, это не будет разумно, потому что это заставит замораживание ui надолго. Поэтому вместо этого я подумал, что было бы намного лучше только инициализировать те диаграммы, которые видны внутри границ обзора браузера, так что, например, инициализируется только первая диаграмма, а когда пользователь прокручивает вниз, а второй холст становится видимым, второй - получение инициализации и так далее.Холст: Обнаружить, если он виден в браузере
У меня есть все настройки, но единственная проблема, с которой я имею прямо сейчас: как я могу создать eventlistener или что-нибудь подобное, которое я могу добавить к каждому элементу canvas, который запускается, когда холст становится видимым внутри границ представления браузера, чтобы я мог выполнить инициализацию графика для этого холста?
['IntersectionObserver'] (https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API) может помочь. ([polyfill] (https://www.npmjs.com/package/intersection-observer)) – gcampbell
вы можете сохранить не инициализированные диаграммы в массиве, а затем добавить на свою страницу событие прокрутки и проверить, не является ли один из тех, которые не инициализированы диаграммы видны. Это может помочь: http://stackoverflow.com/a/36012192/3702797 – Kaiido