$.fn.showOnView = function()

in src/assets/js/main.js [553:655]


  $.fn.showOnView = function (options) {
    if (is_touch_device) {
      console.debug('showOnView disabled for touch device');
      return;
    }
    var settings = $.extend(
      {
        count: 'once',
        transitionDelay: 0,
        transitionIn: 'transition.slideUpIn',
        transitionOut: 'transition.slideDownOut',
        transitionSpeed: 500,
        transitionEasing: 'easeOutSine',
        display: null,
        staggerGroup: false,
        staggerIncrement: 100,
        breakpoint: 'atleast_medium',
      },
      options
    );

    var $window = $(window);
    var onLoad = true;
    var first = true;
    var active = false;
    var $elements = this;

    if (settings.staggerGroup && $(settings.staggerGroup).length) {
      var ar = settings.staggerGroup.split(' ');
      var $groups = $(ar[0]);
      $groups.each(function () {
        var increment = settings.staggerIncrement;
        var $els = $(this).find(ar[1]);
        $els.each(function () {
          $(this).data('onscrolldelay', increment);
          increment += settings.staggerIncrement;
        });
      });
    }

    $window.on('scroll.onLoad', function () {
      onLoad = false;
      $window.off('scroll.onLoad');
    });

    function activate() {
      $elements.each(function () {
        var $el = $(this);
        var delay =
          $el.data('onscrolldelay') !== undefined
            ? $el.data('onscrolldelay')
            : settings.transitionDelay;
        var onLoadDelay = $el.data('onloaddelay');
        var thisDelay;
        var thisDisplay =
          $el.data('display') !== undefined
            ? $el.data('display')
            : settings.display;
        if (settings.count == 'once') {
          $el.one('inview', function (event, isInView) {
            if (isInView) {
              thisDelay =
                onLoad && onLoadDelay != undefined ? onLoadDelay : delay;
              $el.velocity(settings.transitionIn, {
                delay: thisDelay,
                duration: settings.transitionSpeed,
                easing: settings.transitionEasing,
                display: thisDisplay,
              });
            }
          });
        } else if (settings.count == 'everytime') {
          $el.on('inview', function (event, isInView) {
            if (isInView) {
              thisDelay =
                onLoad && onLoadDelay != undefined ? onLoadDelay : delay;
              $el.velocity(settings.transitionIn, {
                delay: thisDelay,
                duration: settings.transitionSpeed,
                easing: settings.transitionEasing,
              });
            } else {
              $el.velocity(settings.transitionOut, {
                duration: settings.transitionSpeed,
                easing: settings.transitionEasing,
              });
            }
          });
        }
      });
    }

    $.subscribe('breakpoints', function (obj, media) {
      active =
        settings.breakpoint == null ||
        media[settings.breakpoint] ||
        media.fallback;
      if (active && first) {
        first = false;
        activate();
      }
    });
  };