Scroll smoothly when jumping to different sections on a page.
Simply add the uk-scroll
attribute to any page-internal link that contains a URL fragment to add the smooth scrolling behavior.
<a href="#my-id" uk-scroll></a>
<a class="uk-button uk-button-primary" href="#target" uk-scroll>Scroll down</a>
The height of a sticky element, for example the sticky navbar, is automatically added as offset to the scroll target so it is not covered by the sticky element.
To define a general offset when linking directly to a specific section on a page, add the offset
option.
<a href="#my-id" uk-scroll="offset: 100"></a>
If there is already an offset for a sticky element, the offset
option is added up.
To receive a callback when scrolling has completed, you can listen to the scrolled
event on the link element that triggered the scrolling.
<a id="js-scroll-trigger" href="#my-id" uk-scroll></a>
UIkit.util.on('#js-scroll-trigger', 'scrolled', function () {
alert('Done.');
});
<a id="js-scroll-trigger" class="uk-button uk-button-primary" href="#target" uk-scroll>Down with callback</a>
<script>
UIkit.util.on('#js-scroll-trigger', 'scrolled', function () {
alert('Done.');
});
</script>
Any of these options can be applied to the component attribute. Separate multiple options with a semicolon. Learn more
Option | Value | Default | Description |
---|---|---|---|
offset |
Number | 0 |
Offset added to scroll top. |
Learn more about JavaScript components.
UIkit.scroll(element, options);
The following events will be triggered on elements with this component attached:
Name | Description |
---|---|
beforescroll |
Fires before scroll begins. Can prevent scrolling by calling preventDefault() on the event. |
scrolled |
Fires after scrolling is finished. |
The following methods are available for the component:
UIkit.scroll(element).scrollTo(el);
Scroll to the given element.
Name | Type | Default | Description |
---|---|---|---|
el |
Node, Selector | undefined | The element to scroll to. |