在滚动页面时触发事件和动画。.
滚动监听组件监听页面滚动并根据滚动位置触发事件。例如,如果在向下滚动页面时,某个元素首次出现在视口中,则可以为该元素触发平滑淡入动画。只需添加以下选项的uk-scrollspy
属性即可。
通常Animation 组件 都和滚动监听组件搭配使用。
<div uk-scrollspy="cls:uk-animation-fade"></div>
<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>
<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>
<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 |
项目变为活动状态后触发。 |