css position:sticky的兼容实现库。
如果浏览器支持则使用浏览器实现,如果不支持则采用监听scroll+position:fixed实现。
核心算法依赖element.getBoundingClientRect()
<script type="text/javascript" src="sticky-polyfill.js"></script>
支持AMD require语法
<script type="text/javascript">
StickyPolyFill.polyfill();
/**
* //跟上面的写法是等价的,也就是默认配置
* StickyPolyFill.polyfill({
* className: 'sticky-polyfill',
* top: '0px',
* bottom: '',
* zIndex: '99'
* });
*/
/**
* 可以多次配置自定义参数来增加sticky类型
*/
StickyPolyFill.polyfill({
className: 'my-sticky-bottom',
top: '',
bottom: '0px',
zIndex: '1'
});
</script>
<section class="sticky-polyfill">
<span>sticky-top</span>
</section>
<div class="my-sticky-bottom">
<span>sticky-bottom</span>
</div>
//手工触发onscroll
document.documentElement.scrollTop = 1; //chrome
document.body.scrollTop = 1; //safari
//还原
document.documentElement.scrollTop = 0; //chrome
document.body.scrollTop = 0; //safari
MDN-position
CSS “position: sticky” – Introduction and Polyfills