Это не проблема кодирования, а проблема понимания.У меня есть следующий код, и он делает то, что должен делать, а именно добавлять и удалять класс к элементам svg при их прокрутке.
$(document).ready(function(){
let allShapes = $("svg path, svg ellipse, svg polyline, svg line");
$(allShapes).each(function(){
let length = this.getTotalLength() + 5;
$(this).css({'stroke-dasharray': length, 'stroke-dashoffset': length});
});
let $window = $(window);
$window.on('scroll resize', check_if_in_view);
$window.trigger('scroll');
function check_if_in_view() {
let window_height = $window.height();
let window_top_position = $window.scrollTop();
let window_bottom_position = (window_top_position + window_height);
$.each(allShapes, function() {
let thisElement = $(this);
let element_height = thisElement.outerHeight();
let element_top_position = thisElement.offset().top + (window_height*0.2);
let element_bottom_position = (element_top_position + element_height);
if ((element_bottom_position >= window_top_position) &&
(element_top_position <= window_bottom_position)) {
thisElement.addClass('animate');
} else {
thisElement.removeClass('animate');
}
});
}
});
У меня вопрос к $ window.on ('scroll resize', check_if_in_view);section.
Почему имя события "check_if_in_view" работает без скобок, даже если это функция?Я бы подумал, что "check_if_in_view ()" будет правильным способом написать это.Как вы, наверное, поняли, я вроде как откровенно отредактировал этот код, и это была существующая часть, которую я не трогал, пока не сломал: /
Заранее спасибо!