Witam.
Mój kod sprawdza, czy użytkownik przekroczył określoną wartość wysokości w px i robi pewne rzeczy.
Problemem jest tutaj wydajność - przy logowaniu do konsoli zauważyłem, że skrypt odświeża się milion razy na minutę :) I czuć po przewijaniu, że szybkość działania strony spada.
Oczywiście powód to trzy ostatnie linijki.
Jak to ugryźć, żeby było lepiej?
let size_of_svg = 500;
function update() {
if ($(window).scrollTop() > (size_of_svg-50)) {
$('.svg_body').addClass('active');
$('.show_map').addClass('active');
$('.small_map').addClass('active');
$(svgDOM).appendTo(small_map[0]);
svgDOM.style.width = "400px";
svgDOM.style.height = "400px";
minimalize.disabled = true;
zoom_in.disabled = true;
zoom_out.disabled = true;
maximize.disabled = true;
} else {
$('.svg_body').removeClass('active');
$('.show_map').removeClass('active');
$('.small_map').removeClass('active');
$(svgDOM).appendTo('.svg_body');
svgDOM.style.width = size_of_svg+"px";
svgDOM.style.height = size_of_svg+"px";
minimalize.disabled = false;
zoom_in.disabled = false;
zoom_out.disabled = false;
maximize.disabled = false;
}
}
$(window).scroll(function () {
update();
});