返回介绍

附着

发布于 2019-05-26 16:28:29 字数 3224 浏览 969 评论 0 收藏 0

让页面元素保持在视口顶部,比如跟随滚动的导航栏。

用法

创建一个能在页面滚动时能保持在视口顶部的页面元素,添加 data-uk-sticky 属性到该元素即可。注意 使用此组件需要额外添加 sticky.css 文件,在css/components文件夹中。此组件需要额外添加 sticky.js 文件,在js/components文件夹中。

<div data-uk-sticky>...</div>

赋予偏移量

还可以定位元素处于视口边缘下的位置。比如,添加 data-uk-sticky="{top:100}" 属性创建100px的margin。

<div data-uk-sticky="{top:100}">...</div>

添加延迟

为元素添加延迟,这样使它能在页面滚动特定距离后才变成粘连状态,你需要添加一个负偏移值到data属性,比如 data-uk-sticky="{top:-200}"。还可以添加动画让元素可以平滑地再次出现。

<div data-uk-sticky="{top:-200, animation: 'uk-animation-slide-top'}">...</div>

响应式行为

还可以通过在data属性中添加断点选项,来实现在不同设备上禁用粘连行为,比如 data-uk-sticky="{media: 640}" 。另外,还可以使用媒体查询来控制。


    <!-- This is basically a shortcode to define a min-width -->
    <div data-uk-sticky="{media: 640}">...</div>
    <!-- This is a media string using the min-width and orientation properties -->
    <div data-uk-sticky="{media: '(min-width: 640px) and (orientation: landscape)'}>...</div>

附着的边界

可以通过设置 boundary 参数定义元素附着行为的边界,使其只在该范围内跟随滚动。


    <!-- Bind sticky to its parent element -->
    <div data-uk-sticky="{boundary: true}">...</div>
    <!-- Bind sticky to any element -->
    <div data-uk-sticky="{boundary: '#my-id'}">...</div>

JavaScript 选项

选项可用值默认值描述
topinteger0触发附着行为的顶部偏移量
animationstring''UIkit 的动画 class
clsinitstringuk-sticky-init元素首次附着时进行初始化的class
clsactivestringuk-active元素附着时添加的 class
clsinactivestring''元素未附着时添加的 class
getWidthFromstring''粘连模式下获取宽度的CSS选择器。默认情况下它从已创建的外层元素获取宽度值。
mediainteger / stringfalse激活状态所需的整型宽度条件,或CSS媒体查询
targetbooleanfalse确保粘连元素不会在DOM就绪后通过位置散列(location hash)越过目标元素。
showupbooleanfalse是否仅在滚动时显示附着的元素
boundarymixedfalse设置为 true 将粘连绑定到父元素或使用CSS选择器将粘连绑定到特定元素。

手动初始化元素

var sticky = UIkit.sticky(element, { /* options */ });

事件

名称参数描述
active.uk.stickyevent获得附着效果
inactive.uk.stickyevent脱离附着状态

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文