Запускайте события и анимации при прокрутке страницы.
Использование
Компонент Scrollspy прослушивает прокрутку страницы и запускает события в зависимости от положения прокрутки.
Например, если вы прокрутите страницу вниз и элемент впервые появится в окне просмотра, вы можете активировать плавную анимацию, чтобы затемнить элемент.
Для начала добавьте атрибут uk-scrollspy
и задайте ему необходимые параметры.
Как правило, классы из компонента Анимация используются вместе с компонентом Scrollspy.
<div uk-scrollspy="cls:uk-animation-fade"></div>
-
Left
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Right
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
<div class="uk-child-width-1-2@m uk-grid-match" uk-grid> <div> <div class="uk-card uk-card-default uk-card-body" uk-scrollspy="cls: uk-animation-slide-left; repeat: true"> <h3 class="uk-card-title">Left</h3> <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p> </div> </div> <div> <div class="uk-card uk-card-default uk-card-body" uk-scrollspy="cls: uk-animation-slide-right; repeat: true"> <h3 class="uk-card-title">Right</h3> <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p> </div> </div> </div>
В этом примере используется опция repeat: true
. Прокрутите вверх и вниз, чтобы увидеть запущенную анимацию. Разметка использует код из компонента Карточки.
Группировка
Вы также можете сгруппировать элементы scrollspy, поэтому вам не придется применять атрибут к каждому из них. Добавьте атрибут uk-scrollspy="target:MY-CLASS"
и
нацеливайте его на селектор элементов, которые вы хотите анимировать внутри контейнера. При использовании задержки она будет применена кумулятивно к элементам в строке, которая прокручивается в поле зрения.
Задержка будет сброшена для следующей строки в группе, когда она прокручивается в области просмотра.
<div uk-scrollspy="target: > div; cls:uk-animation-fade; delay: 500">
<div></div>
<div></div>
</div>
<div class="uk-child-width-1-3@m" uk-grid uk-scrollspy="cls: uk-animation-fade; target: > div > .uk-card; delay: 500; repeat: true"> <div> <div class="uk-card uk-card-default uk-card-body"> <h3 class="uk-card-title">Fade</h3> <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p> </div> </div> <div> <div class="uk-card uk-card-default uk-card-body"> <h3 class="uk-card-title">Fade</h3> <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p> </div> </div> <div> <div class="uk-card uk-card-default uk-card-body"> <h3 class="uk-card-title">Fade</h3> <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p> </div> </div> <div> <div class="uk-card uk-card-default uk-card-body"> <h3 class="uk-card-title">Fade</h3> <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p> </div> </div> <div> <div class="uk-card uk-card-default uk-card-body"> <h3 class="uk-card-title">Fade</h3> <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p> </div> </div> <div> <div class="uk-card uk-card-default uk-card-body"> <h3 class="uk-card-title">Fade</h3> <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p> </div> </div> </div>
Опции компонента
Любой из этих параметров может быть применен к атрибуту компонента. Разделяйте несколько вариантов точкой с запятой. Подробнее о работе с опцииями.
Опция | Значение | По умолчанию | Описание |
---|---|---|---|
cls |
String | uk-scrollspy-inview |
Класс для добавления, когда элемент находится в поле зрения. Классы разделяйте запятыми, тогда они будут переключены. |
hidden |
Boolean | true |
Скрывает элемент, находящийся вне окна просмотра. |
offset-top |
Number | 0 |
Верхнее смещение до активации. |
offset-left |
Number | 0 |
Смещение влево до запуска анимации. |
repeat |
Boolean | false |
Применяет cls каждый раз, когда элемент находится в области просмотра. |
delay |
Number | 0 |
Задержка в миллисекундах. |
cls
является основной опцией, и ее ключ может быть опущен, если это единственный параметр в значении атрибута.
<span uk-scrollspy="my-class"></span>
JavaScript
Подробнее о Компонентах JavaScript.
Инициализация
UIkit.scrollspy(element, options);
События
Следующие события будут инициированы для элементов, связанных с этим компонентом:
Имя | Описание |
---|---|
inview |
Срабатывает после того, как элемент попадает в область просмотра. |
outview |
Срабатывает после того, как элемент выходит из области просмотра. |
Scrollspy nav
To automatically update the active menu item depending on the scroll position of your site, add the uk-scrollspy-nav
attribute to any navigation. Each menu item must link to the ID of its corresponding part of the site.
<ul class="uk-nav uk-nav-default" uk-scrollspy-nav="closest: li; scroll: true">
<li><a href=""></a></li>
<li><a href=""></a></li>
</ul>
Для примера навигации по scrollspy, перейдите в раздел тесты.
Любой из следующих параметров может быть применен к атрибуту uk-scrollspy-nav
. Разделяйте параметры точкой с запятой.
Опции навигации с использованием Scrollspy
Любой из этих параметров может быть применен к атрибуту компонента. Разделяйте несколько вариантов точкой с запятой. Подробнее
Опция | Значение | По умолчанию | Описание |
---|---|---|---|
cls |
String | uk-active |
Класс активной ссылки. |
closest |
String | uk-scrollspy-init-inview |
Целевой элемент для применения класса. |
scroll |
Boolean | false |
Добавляет компонент Scroll к своим ссылкам. |
overflow |
Boolean | true |
Если для параметра overflow установлено значение true, первый или последний элемент останется активным, если он расположен над или под навигацией. |
offset |
Number | 0 |
Смещение в пикселях добавляется в верхнюю часть прокрутки. |
Scrollspy nav JavaScript
Подробнее о компонентах JavaScript.
Инициализация
UIkit.scrollspyNav(element, options);
События
Следующие события будут инициированы для элементов, связанных с этим компонентом:
Имя | Описание |
---|---|
active |
Срабатывает после того, как элемент становится активным. |