function Headroom(elem, options) {
  options = options || {};
  Object.assign(this, Headroom.options, options);
  this.classes = Object.assign({}, Headroom.options.classes, options.classes);

  this.elem = elem;
  this.tolerance = normalizeUpDown(this.tolerance);
  this.offset = normalizeUpDown(this.offset);
  this.initialised = false;
  this.frozen = false;
}
UI enhancement for fixed headers.
Hides header when scrolling down
Shows header when scrolling up
@constructor
@param {DOMElement} elem the header element
@param {Object} options options for the widget