Добрый день, всем.
Использую библиотеку lazy-line-painter.js ( lazylinepainter.info ) , для "ленивой" отрисовки линий svg изображений.
Так получилось, что таких изображений около 20 штук.
Отрисовываются они после наведения мышки на блок с нужным id
Везде разные id блоков и изображений
Частые обращения к DOM и пр сильно грузят сайт, до 3 секунд.
Подскажите пожалуйста, как можно оптимизировать этот код, или какие-то приёмы, чтобы ускорить загрузку?
spoiler
// элемент на который наводим
let audit = document.querySelector('#audit__block');
let schit = document.querySelector('#schit__block');
// ID нужного изображения
let auditSvg = document.querySelector('#auditobject');
let schitSvg = document.querySelector('#schitok');
// добавляем и удаляем класс при наведении с display:block
audit.onmouseover = function(e) {
document.querySelector('#audit').classList.add('svg_vision');
}
audit.onmouseout = function(e) {
document.querySelector('#audit').classList.remove('svg_vision');
}
schit.onmouseover = function(e) {
document.querySelector('#schit').classList.add('svg_vision');
document.querySelector('#audit').style.display = 'none';
}
schit.onmouseout = function(e) {
document.querySelector('#schit').classList.remove('svg_vision');
document.querySelector('#audit').style.display = 'block';
}
// инициализация и свойства отрисовки анимации
let auditAnimation = new LazyLinePainter(auditSvg, {
strokeColor: '#cc2d8a',
strokeWidth: 0.5,
ease: 'easeInOutExpo'
});
let schitAnimation = new LazyLinePainter(schitSvg, {
strokeColor: '#cc2d8a',
strokeWidth: 0.2,
ease: 'easeInOutExpo'
});
audit.addEventListener('mouseover', paintAudit, false);
schit.addEventListener('mouseover', paintSchit, false);
function paintAudit(){
auditAnimation.paint();
}
function paintSchit(){
schitAnimation.paint();
}
paintAudit();
paintSchit();