Sticky-js是一个用vanilla javascript编写的sticky元素库。有了这个库,你可以很容易地在你的网站上设置sticky元素。它的反应也很灵敏。
![]() |
---|
特性:
1)用普通javascript编写,不需要依赖项
2)轻量级 (minified: ~6.08kb, gzipped: ~1.67kb)
3)它可以粘贴到整个页面或选定的父容器
4)不需要额外的CSS
<script src="sticky.min.js"></script>
<div class="selector">Sticky element</div>
用 javascript 初始化
<script>
var sticky = new Sticky('.selector');
</script>
Syntax
new Sticky([selector:string], [global options:object])
CommonJS
var Sticky = require('sticky-js');
var sticky = new Sticky('.selector');
<div class="row" data-sticky-container>
<div class="medium-2 columns">
<img src="http://placehold.it/250x250" class="sticky" data-margin-top="20" data-sticky-for="1023" data-sticky-class="is-sticky">
</div>
<div class="medium-8 columns">
<h1>Sticky-js</h1>
<p>Lorem ipsum.....</p>
</div>
<div class="medium-2 columns">
<img src="http://placehold.it/250x250" class="sticky" data-margin-top="20" data-sticky-for="1023" data-sticky-class="is-sticky">
</div>
</div>
<script src="sticky.min.js"></script>
<script>
var sticky = new Sticky('.sticky');
</script>
Option | Type | Default | Description |
data-sticky-wrap | boolean | FALSE | When it's true sticky element is wrapped in <span></span> which has sticky element dimensions. Prevents content from "jumping". |
data-margin-top | number | 0 | Margin between page and sticky element when scrolled |
data-sticky-for | number | 0 | Breakpoint which when is bigger than viewport width, sticky is activated and when is smaller, then sticky is destroyed |
data-sticky-class | string | null | Class added to sticky element when it is stuck |
Github 地址 : https://github.com/rgalus/sticky-js
npm 地址 : https://www.npmjs.com/package/sticky-js/v/1.0.0
效果演示及文档 : https://rgalus.github.io/sticky-js/