UNPKG

8.72 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
5Object.defineProperty(exports, "__esModule", {
6 value: true
7});
8exports["default"] = scrollTo;
9exports.defaultOptions = exports.setDefaultOptions = exports.getDefaultOptions = void 0;
10
11var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
12
13var _animatedScrollTo = _interopRequireDefault(require("./animated-scroll-to"));
14
15function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
16
17function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
18
19var getDefaultOptions = function getDefaultOptions() {
20 if (typeof window === 'undefined') return {};
21 return window.__lskjs_scroll || {};
22};
23
24exports.getDefaultOptions = getDefaultOptions;
25
26var setDefaultOptions = function setDefaultOptions() {
27 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
28 if (typeof window === 'undefined') return;
29 window.__lskjs_scroll = options;
30};
31
32exports.setDefaultOptions = setDefaultOptions;
33var defaultOptions = {
34 offset: -200 // // duration of the scroll per 1000px, default 500
35 // speed: 500,
36 // // minimum duration of the scroll
37 // minDuration: 250,
38 // // maximum duration of the scroll
39 // maxDuration: 1500,
40 // // DOM element to scroll, default window
41 // // Pass a reference to a DOM object
42 // // Example: document.querySelector('#element-to-scroll'),
43 // // element: window,
44 // // Additional offset value that gets added to the desiredOffset. This is
45 // // useful when passing a DOM object as the desiredOffset and wanting to adjust
46 // // for an fixed nav or to add some padding.
47 // offset: -300,
48 // // should animated scroll be canceled on user scroll/keypress
49 // // if set to "false" user input will be disabled until animated scroll is complete
50 // // (when set to false, "passive" will be also set to "false" to prevent Chrome errors)
51 // cancelOnUserAction: true,
52 // // Set passive event Listeners to be true by default. Stops Chrome from complaining.
53 // passive: true,
54 // // Scroll horizontally rather than vertically (which is the default)
55 // horizontal: true,
56
57};
58exports.defaultOptions = defaultOptions;
59setDefaultOptions(defaultOptions);
60
61function scrollTo(id) {
62 var incomeOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
63
64 var options = _objectSpread(_objectSpread({}, getDefaultOptions()), incomeOptions);
65
66 try {
67 if (options.debug) console.log('scrollTo ', id);
68 var value;
69
70 if (id == null) {
71 return false;
72 }
73
74 if (typeof id === 'string') {
75 var anchor = document.querySelector(id);
76 if (!anchor) return false;
77 value = anchor;
78 } else {
79 value = id;
80 }
81
82 (0, _animatedScrollTo["default"])(value, options);
83 return true;
84 } catch (err) {
85 if (options.debug) console.error('scrollTo error', err);
86 return false;
87 }
88}
89//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJnZXREZWZhdWx0T3B0aW9ucyIsIndpbmRvdyIsIl9fbHNranNfc2Nyb2xsIiwic2V0RGVmYXVsdE9wdGlvbnMiLCJvcHRpb25zIiwiZGVmYXVsdE9wdGlvbnMiLCJvZmZzZXQiLCJzY3JvbGxUbyIsImlkIiwiaW5jb21lT3B0aW9ucyIsImRlYnVnIiwiY29uc29sZSIsImxvZyIsInZhbHVlIiwiYW5jaG9yIiwiZG9jdW1lbnQiLCJxdWVyeVNlbGVjdG9yIiwiZXJyIiwiZXJyb3IiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBOzs7Ozs7QUFFTyxJQUFNQSxpQkFBaUIsR0FBRyxTQUFwQkEsaUJBQW9CLEdBQU07QUFDckMsTUFBSSxPQUFPQyxNQUFQLEtBQWtCLFdBQXRCLEVBQW1DLE9BQU8sRUFBUDtBQUNuQyxTQUFPQSxNQUFNLENBQUNDLGNBQVAsSUFBeUIsRUFBaEM7QUFDRCxDQUhNOzs7O0FBSUEsSUFBTUMsaUJBQWlCLEdBQUcsU0FBcEJBLGlCQUFvQixHQUFrQjtBQUFBLE1BQWpCQyxPQUFpQix1RUFBUCxFQUFPO0FBQ2pELE1BQUksT0FBT0gsTUFBUCxLQUFrQixXQUF0QixFQUFtQztBQUNuQ0EsRUFBQUEsTUFBTSxDQUFDQyxjQUFQLEdBQXdCRSxPQUF4QjtBQUNELENBSE07OztBQUtBLElBQU1DLGNBQWMsR0FBRztBQUM1QkMsRUFBQUEsTUFBTSxFQUFFLENBQUMsR0FEbUIsQ0FFNUI7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7O0FBOUI0QixDQUF2Qjs7QUFpQ1BILGlCQUFpQixDQUFDRSxjQUFELENBQWpCOztBQUVlLFNBQVNFLFFBQVQsQ0FBa0JDLEVBQWxCLEVBQTBDO0FBQUEsTUFBcEJDLGFBQW9CLHVFQUFKLEVBQUk7O0FBQ3ZELE1BQU1MLE9BQU8sbUNBQ1JKLGlCQUFpQixFQURULEdBRVJTLGFBRlEsQ0FBYjs7QUFLQSxNQUFJO0FBQ0YsUUFBSUwsT0FBTyxDQUFDTSxLQUFaLEVBQW1CQyxPQUFPLENBQUNDLEdBQVIsQ0FBWSxXQUFaLEVBQXlCSixFQUF6QjtBQUNuQixRQUFJSyxLQUFKOztBQUNBLFFBQUlMLEVBQUUsSUFBSSxJQUFWLEVBQWdCO0FBQ2QsYUFBTyxLQUFQO0FBQ0Q7O0FBQ0QsUUFBSSxPQUFPQSxFQUFQLEtBQWMsUUFBbEIsRUFBNEI7QUFDMUIsVUFBTU0sTUFBTSxHQUFHQyxRQUFRLENBQUNDLGFBQVQsQ0FBdUJSLEVBQXZCLENBQWY7QUFDQSxVQUFJLENBQUNNLE1BQUwsRUFBYSxPQUFPLEtBQVA7QUFDYkQsTUFBQUEsS0FBSyxHQUFHQyxNQUFSO0FBQ0QsS0FKRCxNQUlPO0FBQ0xELE1BQUFBLEtBQUssR0FBR0wsRUFBUjtBQUNEOztBQUNELHNDQUFnQkssS0FBaEIsRUFBdUJULE9BQXZCO0FBQ0EsV0FBTyxJQUFQO0FBQ0QsR0FmRCxDQWVFLE9BQU9hLEdBQVAsRUFBWTtBQUNaLFFBQUliLE9BQU8sQ0FBQ00sS0FBWixFQUFtQkMsT0FBTyxDQUFDTyxLQUFSLENBQWMsZ0JBQWQsRUFBZ0NELEdBQWhDO0FBQ25CLFdBQU8sS0FBUDtBQUNEO0FBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYW5pbWF0ZVNjcm9sbFRvIGZyb20gJy4vYW5pbWF0ZWQtc2Nyb2xsLXRvJztcblxuZXhwb3J0IGNvbnN0IGdldERlZmF1bHRPcHRpb25zID0gKCkgPT4ge1xuICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcpIHJldHVybiB7fTtcbiAgcmV0dXJuIHdpbmRvdy5fX2xza2pzX3Njcm9sbCB8fCB7fTtcbn07XG5leHBvcnQgY29uc3Qgc2V0RGVmYXVsdE9wdGlvbnMgPSAob3B0aW9ucyA9IHt9KSA9PiB7XG4gIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykgcmV0dXJuO1xuICB3aW5kb3cuX19sc2tqc19zY3JvbGwgPSBvcHRpb25zO1xufTtcblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRPcHRpb25zID0ge1xuICBvZmZzZXQ6IC0yMDAsXG4gIC8vIC8vIGR1cmF0aW9uIG9mIHRoZSBzY3JvbGwgcGVyIDEwMDBweCwgZGVmYXVsdCA1MDBcbiAgLy8gc3BlZWQ6IDUwMCxcblxuICAvLyAvLyBtaW5pbXVtIGR1cmF0aW9uIG9mIHRoZSBzY3JvbGxcbiAgLy8gbWluRHVyYXRpb246IDI1MCxcblxuICAvLyAvLyBtYXhpbXVtIGR1cmF0aW9uIG9mIHRoZSBzY3JvbGxcbiAgLy8gbWF4RHVyYXRpb246IDE1MDAsXG5cbiAgLy8gLy8gRE9NIGVsZW1lbnQgdG8gc2Nyb2xsLCBkZWZhdWx0IHdpbmRvd1xuICAvLyAvLyBQYXNzIGEgcmVmZXJlbmNlIHRvIGEgRE9NIG9iamVjdFxuICAvLyAvLyBFeGFtcGxlOiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjZWxlbWVudC10by1zY3JvbGwnKSxcbiAgLy8gLy8gZWxlbWVudDogd2luZG93LFxuXG4gIC8vIC8vIEFkZGl0aW9uYWwgb2Zmc2V0IHZhbHVlIHRoYXQgZ2V0cyBhZGRlZCB0byB0aGUgZGVzaXJlZE9mZnNldC4gIFRoaXMgaXNcbiAgLy8gLy8gdXNlZnVsIHdoZW4gcGFzc2luZyBhIERPTSBvYmplY3QgYXMgdGhlIGRlc2lyZWRPZmZzZXQgYW5kIHdhbnRpbmcgdG8gYWRqdXN0XG4gIC8vIC8vIGZvciBhbiBmaXhlZCBuYXYgb3IgdG8gYWRkIHNvbWUgcGFkZGluZy5cbiAgLy8gb2Zmc2V0OiAtMzAwLFxuXG4gIC8vIC8vIHNob3VsZCBhbmltYXRlZCBzY3JvbGwgYmUgY2FuY2VsZWQgb24gdXNlciBzY3JvbGwva2V5cHJlc3NcbiAgLy8gLy8gaWYgc2V0IHRvIFwiZmFsc2VcIiB1c2VyIGlucHV0IHdpbGwgYmUgZGlzYWJsZWQgdW50aWwgYW5pbWF0ZWQgc2Nyb2xsIGlzIGNvbXBsZXRlXG4gIC8vIC8vICh3aGVuIHNldCB0byBmYWxzZSwgXCJwYXNzaXZlXCIgd2lsbCBiZSBhbHNvIHNldCB0byBcImZhbHNlXCIgdG8gcHJldmVudCBDaHJvbWUgZXJyb3JzKVxuICAvLyBjYW5jZWxPblVzZXJBY3Rpb246IHRydWUsXG5cbiAgLy8gLy8gU2V0IHBhc3NpdmUgZXZlbnQgTGlzdGVuZXJzIHRvIGJlIHRydWUgYnkgZGVmYXVsdC4gU3RvcHMgQ2hyb21lIGZyb20gY29tcGxhaW5pbmcuXG4gIC8vIHBhc3NpdmU6IHRydWUsXG5cbiAgLy8gLy8gU2Nyb2xsIGhvcml6b250YWxseSByYXRoZXIgdGhhbiB2ZXJ0aWNhbGx5ICh3aGljaCBpcyB0aGUgZGVmYXVsdClcbiAgLy8gaG9yaXpvbnRhbDogdHJ1ZSxcbn07XG5cbnNldERlZmF1bHRPcHRpb25zKGRlZmF1bHRPcHRpb25zKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gc2Nyb2xsVG8oaWQsIGluY29tZU9wdGlvbnMgPSB7fSkge1xuICBjb25zdCBvcHRpb25zID0ge1xuICAgIC4uLmdldERlZmF1bHRPcHRpb25zKCksXG4gICAgLi4uaW5jb21lT3B0aW9ucyxcbiAgfTtcblxuICB0cnkge1xuICAgIGlmIChvcHRpb25zLmRlYnVnKSBjb25zb2xlLmxvZygnc2Nyb2xsVG8gJywgaWQpO1xuICAgIGxldCB2YWx1ZTtcbiAgICBpZiAoaWQgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIGlkID09PSAnc3RyaW5nJykge1xuICAgICAgY29uc3QgYW5jaG9yID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihpZCk7XG4gICAgICBpZiAoIWFuY2hvcikgcmV0dXJuIGZhbHNlO1xuICAgICAgdmFsdWUgPSBhbmNob3I7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhbHVlID0gaWQ7XG4gICAgfVxuICAgIGFuaW1hdGVTY3JvbGxUbyh2YWx1ZSwgb3B0aW9ucyk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGlmIChvcHRpb25zLmRlYnVnKSBjb25zb2xlLmVycm9yKCdzY3JvbGxUbyBlcnJvcicsIGVycik7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG4iXX0=
90//# sourceMappingURL=index.js.map
\No newline at end of file