arale-sticky
实现元素跟随滚动的效果。
Usage no npm install needed!
<script type="module">
import araleSticky from 'https://cdn.skypack.dev/arale-sticky';
</script>
实现元素跟随滚动的效果。
<script type="module">
import araleSticky from 'https://cdn.skypack.dev/arale-sticky';
</script>
quot;, "sticky"], function($, sticky) { sticky("#stick", 30, function(status) { if (status) { seajs.log("stick"); } else { seajs.log("unstick"); } }); });
element
是指需要跟随滚动的目标元素,接受 jQuery selector 对象。
position
位置对象, 取:
{
top: 10,
bottom: 10
}
设置 top 或者 bottom, 指当元素距离当前可视窗口顶部或底部的距离等于这个值时, 开始触发跟随状态.
当 position
取一整型数值时, 等价于 position
取 { top: x }
callback
当元素更改状态之后的回调函数, 具有一个参数 status, 为 true 表示是 stick 状态, 为 false 为 unstick 状态.
有几下三点注意:
当
position.top
设置的值超过元素本身在文档中的高度时, 就变为全局 fixed 效果Sticky 对某些情况下的元素会向 DOM 中插入占位元素, 所以务必在 DOM ready 之后初始化该组件
对于
position: static or relative
且display
不为none
的情况下, 会在当前元素后面插入宽高与元素相同的占位符.
返回为 Sticky 实例对象, 具有以下成员和方法:
this.elem
当前元素, 即上述的 element
this.adjust()
用于当 sticky 元素被动改变位置时, 导致其 offsetTop 改变, 从而需要手工调用该方法来调整 sticky 元素状态. 自动检测元素位置改变实现太复杂, 这里简略处理.
seajs.use(["sticky"], function(sticky) {
sticky.fix("#element-need-to-fixed");
});
element
是指需要 fixed 的目标元素,接受 jQuery selector 对象。
注意: 请自行设置元素的
left, top
等 CSS 属性。