scrollTo.js 842 B

1234567891011121314151617181920212223242526272829303132333435
  1. var Tween = require('./Tween');
  2. var defaults = require('./defaults');
  3. var noop = require('./noop');
  4. var isNum = require('./isNum');
  5. var $offset = require('./$offset');
  6. exports = function(target, options) {
  7. options = options || {};
  8. defaults(options, defOpts);
  9. if (!isNum(target)) target = $offset(target).top;
  10. new Tween({
  11. y: window.pageYOffset
  12. })
  13. .on('update', function(target) {
  14. window.scroll(0, target.y);
  15. })
  16. .on('end', function() {
  17. options.callback();
  18. })
  19. .to(
  20. {
  21. y: target - options.tolerance
  22. },
  23. options.duration,
  24. options.easing
  25. )
  26. .play();
  27. };
  28. var defOpts = {
  29. tolerance: 0,
  30. duration: 800,
  31. easing: 'outQuart',
  32. callback: noop
  33. };
  34. module.exports = exports;