$.fn.breakpoints = function()

in src/assets/js/breakpoints.js [23:67]


  $.fn.breakpoints = function (options) {
    var settings = $.extend(
      {
        matchMedia: Array(
          { label: 'small', match: '(max-width: 639px)' },
          {
            label: 'medium',
            match: '(min-width: 640px) and (max-width: 959px)',
          },
          { label: 'atleast_medium', match: '(min-width: 640px)' },
          {
            label: 'large',
            match: '(min-width: 960px) and (max-width: 1319px)',
          },
          { label: 'atleast_large', match: '(min-width: 960px)' }
        ),
      },
      options
    );

    var matches = new Array();

    if (window.matchMedia) {
      for (var i = 0; i < settings.matchMedia.length; i++) {
        var match = window.matchMedia(settings.matchMedia[i].match);
        match.addListener(breakpoint);
        matches.push({ match: match, label: settings.matchMedia[i].label });
      }
      breakpoint({ matches: true });
    } else {
      $.publish('breakpoints', [{ fallback: true }]);
    }

    // media query change
    // ------------------
    function breakpoint(mq) {
      if (typeof mq.matches !== 'undefined') {
        var media = {};
        for (var i = 0; i < matches.length; i++) {
          media[matches[i].label] = matches[i].match.matches;
        }
        $.publish('breakpoints', [media]);
      }
    }
  };