on. () Синтаксис события - PullRequest
0 голосов
/ 24 мая 2018

Это не проблема кодирования, а проблема понимания.У меня есть следующий код, и он делает то, что должен делать, а именно добавлять и удалять класс к элементам 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 ()" будет правильным способом написать это.Как вы, наверное, поняли, я вроде как откровенно отредактировал этот код, и это была существующая часть, которую я не трогал, пока не сломал: /

Заранее спасибо!

...