在滚动页面时触发事件并动画。.
滚动监听组件监听页面滚动并根据滚动位置触发事件。例如,如果在向下滚动页面时,某个元素首次出现在视口中,则可以为该元素触发平滑淡入动画。只需添加以下选项的uk-scrollspy 属性即可。
通常Animation 组件 都和滚动监听组件搭配使用。
<div uk-scrollspy="cls:uk-animation-fade"></div>Lorem ipsum dolor sit amet, consectetur adipiscing elit.
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 选项。上下滚动页面可查看触发的动画。这里的布局用到了 Card 组件。
您还可以奖多个需要添加滚动监听的元素编成一组,这样就无需对每个元素都应用该属性。只需将uk-scrollspy="target: SELECTOR" 属性添加到容器元素中,将 target 选项指向容器中你想要添加动画效果的元素。当使用delay(延时)时,将会为进入视野的一行条目添加逐次显现的效果。
<div uk-scrollspy="target: > div; cls: uk-animation-fade; delay: 500">
<div></div>
<div></div>
</div>Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
<div class="uk-child-width-1-3@m" uk-grid uk-scrollspy="cls: uk-animation-fade; target: .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 选项你也可以给每个目标设置单独的cls 选项。只需将 uk-scrollspy-class="CLASS" 属性添加到目标元素即可。它将覆盖组件上设置的clscls 选项。
<div uk-scrollspy="target: > div; cls: uk-animation-fade; delay: 500">
<div uk-scrollspy-class="uk-animation-slide-top"></div>
<div uk-scrollspy-class="uk-animation-slide-bottom"></div>
</div>Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
<div class="uk-child-width-1-3@m" uk-grid uk-scrollspy="cls: uk-animation-slide-bottom; target: .uk-card; delay: 300; repeat: true">
<div>
<div class="uk-card uk-card-default uk-card-body">
<h3 class="uk-card-title">Bottom</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-class="uk-animation-slide-top">
<h3 class="uk-card-title">Top</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">Bottom</h3>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
</div>
</div>
</div>以下选项中的任何一个都可以应用于组件属性。用分号分隔多个选项。 了解更多
| Option | Value | Default | Description |
|---|---|---|---|
cls |
String | `` | 元素在视野内时添加的 class。如果要添加两个,用逗号隔开。 |
hidden |
Boolean | true |
在元素离开视口时隐藏元素 |
offset-top |
Number | 0 |
在视口中触发事件前的顶部偏移量。 |
offset-left |
Number | 0 |
在视口中触发事件前的左侧偏移量。 |
repeat |
Boolean | false |
是否在元素每次进入视野时都添加cls 中的 class |
delay |
Number | 0 |
延迟时间(毫秒)。 |
cls 是 Primary 选项,如果它是属性值中的唯一选项,则可以省略它的键。
<span uk-scrollspy="my-class"></span>了解更多关于 JavaScript 组件的内容。
UIkit.scrollspy(element, options);将在附加了此组件的元素上触发以下事件:
| Name | Description |
|---|---|
inview |
元素进入视口后触发 |
outview |
元素离开视口后触发 |
要根据站点的滚动位置自动更新导航内对应菜单项的活动状态,请将uk-scrollspy-nav 属性添加到导航菜单。每个菜单项都必须链接到页面内对应部分位置的ID。
<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>有关滚动监听导航的示例,可以查看本页面右侧的固定导航效果或查看测试页。以下任何选项都可以应用于uk-scrollspy-nav 属性。用分号分隔多个选项。
以下选项中的任何一个都可以应用于组件属性。用分号分隔多个选项。了解更多。
| Option | Value | Default | Description |
|---|---|---|---|
cls |
String | uk-active |
添加到活动链接上的 class |
closest |
String | uk-scrollspy-init-inview |
将上面所述的 class,应用到本选择器对应的目标元素中。 |
scroll |
Boolean | false |
在链接上添加使用Scroll 组件 。 |
overflow |
Boolean | true |
如果将overflow设置为true,页面滚动到顶部或底部时,则位于导航上方或下方的第一个或最后一个元素将保持活动状态。 |
offset |
Number | 0 |
滚动到顶部时添加像素偏移量。 |
了解更多关于 JavaScript 组件的内容。
UIkit.scrollspyNav(element, options);附加此组件的元素将触发以下事件:
| Name | Description |
|---|---|
active |
项目变为活动状态后触发。 |