原生 JavaScript 实现的固定在顶部效果,兼容到 IE7+。
效果演示:https://mqyqingfeng.github.io/Sticky/
IE7+
原生 JavaScript 实现,无依赖。
git clone git@github.com:mqyqingfeng/Sticky.git
<script src="path/sticky.js"></script>
或者
import Sticky from 'path/sticky.js'
HTML 文件:
<div id="sticky"></div>
JavaScript 文件:
var sticky = new Sticky("#sticky");
var sticky = new Sticky("selector", options);
注意:当要兼容 IE7 的时候,不能传入选择符字符串,直接传入元素:
var stickyElem = document.getElementById("sticky");
var sticky = new Sticky(stickyElem)
1.offset
var sticky = new Sticky("#sticky", {
// 表示距离顶部 20px 的时候就固定
offset: 20
});
从未固定状态到固定状态的时候:
sticky.on("onStick", function() {
console.log('固定在顶部')
})
从固定状态到未固定状态的时候:
sticky.on("onDetach", function() {
console.log('取消固定在顶部')
})
如果希望事件只执行一次,可以使用 once 进行绑定
sticky.once("onStick", function() {
console.log('固定在顶部')
})
当固定在顶部的时候,会添加一个名为 sticky
的类名