diff --git a/README.md b/README.md index dc64b325928f8f68a519642088906177c84a69d7..0fbdd160d8770301e90c2867f40a13af540fe100 100644 --- a/README.md +++ b/README.md @@ -18,10 +18,10 @@ yarn add @grifart/smoothscroll import SmoothScroll from '@grifart/smoothscroll'; // use defaults -SmoothScroll(); +SmoothScroll.enable(); // customize -SmoothScroll({ +SmoothScroll.enable({ scrollOnLoad: false, scrollOnLinkClick: true, }); diff --git a/demo.html b/demo.html index c18f2c4730b53d2106ed7a1f4be7f9a2e3fefd9f..d1f165576478fb3b0d019165b4769ba250e105f4 100644 --- a/demo.html +++ b/demo.html @@ -7,7 +7,7 @@ <script src="https://cdn.jsdelivr.net/npm/velocity-animate@1.5/velocity.min.js"></script> <script src="dist/index.js" type="text/javascript"></script> <script> - SmoothScroll({ + SmoothScroll.enable({ scrollOnLoad: true, scrollOnLinkClick: true, }); diff --git a/src/index.ts b/src/index.ts index 9f776a5e66d9fcff134d01625efecb55e14bdadd..367a6d3f0ba241c2632687f72756171a239fbadd 100644 --- a/src/index.ts +++ b/src/index.ts @@ -8,16 +8,22 @@ export interface SmoothScrollOptions { readonly scrollOnLinkClick?: boolean; } -function SmoothScroll(options?: SmoothScrollOptions): void +/** + * Wrapped into class for intuitive API use – `SmoothScroll.enable()` + */ +class SmoothScroll { - setupVelocity(Velocity); + public static enable(options?: SmoothScrollOptions): void + { + setupVelocity(Velocity); - if ( ! (options && options.scrollOnLoad === false)) { - initializeOnLoadScroll(); - } + if ( ! (options && options.scrollOnLoad === false)) { + initializeOnLoadScroll(); + } - if ( ! (options && options.scrollOnLinkClick === false)) { - initializeOnLinkClickScroll(); + if ( ! (options && options.scrollOnLinkClick === false)) { + initializeOnLinkClickScroll(); + } } }