Skip to content
Snippets Groups Projects
Commit 081a6e70 authored by Daniel Kurowski's avatar Daniel Kurowski
Browse files

Updated readme

parent 7b4ecfb8
No related branches found
No related tags found
1 merge request!8Resolve "Expose manual scrollTo*() methods to public API"
Pipeline #27196 passed
# @grifart/smoothscroll
As smoothscroll functionality is nice and more user-friendly, this library solves these two things which were often repeating in our code:
1. Enables smooth scrolling on all anchors starting with `#` character.
2. Enables smooth scrolling when page is entered with `#` character in URL.
Additionally this library comes with custom easing function registered by default which works as basic ease-in-out with one modification that it skips content if it is too long. This results in nicer transition between two parts of a page.
Aim of this library is to provide more user-friendly and less epileptic scrolling effect on a long content as well as unification of all types of scrolling on a page.
## Installation and usage
......@@ -22,7 +17,7 @@ SmoothScroll.enable();
// customize
SmoothScroll.enable({
scrollOnLoad: false,
scrollOnLoad: true,
scrollOnLinkClick: true,
});
```
......@@ -36,6 +31,31 @@ SmoothScroll.enable({
\*Note: when the page load lasts more than 500 ms, load smooth scroll effect is disabled as it would lead to user-unfriendly behaviour like jumping on the page up and down due to browser native behaviour.
### Methods
|Method|Parameters|
|---|---|
|`enable([options])`|`options` (optional): see above|
|`scrollToElement(element[, onScrollFinishedCallback])`|`element`: element to scroll to `onScrollFinishedCallback` (optional): callback to trigger when scrolling is finished|
|`scrollToOffset(topOffset[, onScrollFinishedCallback])`|`topOffset`: scroll offset from top of document `onScrollFinishedCallback` (optional): callback to trigger when scrolling is finished|
|`scrollToTarget(hashTarget[, onScrollFinishedCallback])`|`hashTarget`: instance of `HashTarget` object\* or `string`\*\* `onScrollFinishedCallback` (optional): callback to trigger when scrolling is finished|
\* `HashTarget` is a value object representing a target to scroll to. You can easily initalize it with named constructor: `HashTarget.fromString('#some-identifier', document)`
\*\* In case of passing `string`, `HashTarget` object will be instantiated automatically with current `document` context.
## More about
### Custom scrolling effect
Improved scrolling effect (internally called `ease-in-skip-out`) is registered by default and it works as basic ease-in-out with one modification that it skips content if it is too long. This results in nicer transition between two parts of a page.
### Covered scenarios
- scroll when clicking a link with an anchor (`<a href="#anchor">whatever</a>`)
- scroll when page is entered with an anchor (`https://example.com/whatever#anchor`)
- scroll when programatically needed to scroll to:
- given position (top offset)
- given element
## Development
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment