code: function swap($elements, newCss, callback) {
          var restore, item;
  
          restore = [];
  
          $elements.each(function () {
              var name;
  
              for (name in newCss) {
                  if (Object.prototype.hasOwnProperty.call(newCss, name)) {
                      restore.push({
                          el: this,
                          name: name,
                          old: this.style[name]
                      });
  
                      this.style[name] = newCss[name];
                  }
              }
          });
  
          callback();
  
          while (restore.length) {
              item = restore.pop();
              item.el.style[item.name] = item.old;
          }
      }
docs: Function from jQuery to swap some CSS values, run a callback,
  then restore the CSS.  Modified to pass JSLint and handle undefined
  values with 'use strict'.
  
  @param {jQuery} $elements Element
  @param {Object} newCss CSS values to swap out
  @param {Function} callback Function to run