如何固定一块div滑动到一定位置之后不再滑动?
例如:http://segmentfault.com/q/1010000000312781这个页面中的“转发分享”和“相关问题”,在滑动到页面顶部的时候不再滑动了。
如何固定一块div滑动到一定位置之后不再滑动?
例如:http://segmentfault.com/q/1010000000312781这个页面中的“转发分享”和“相关问题”,在滑动到页面顶部的时候不再滑动了。
我用的是sticky插件的,但是插件原来的显示方式会溢出。
怎么办呢?我研究了下源码,在他计算底部距离的时候,我加了个
var $parentElement = s.stickyElement.parents(s.containerSelector);
var bos = documentHeight-($parentElement.offset()?$parentElement.offset().top:0)-($parentElement.height()?$parentElement.height():0);
s.bottomSpacing=s.defaultBottom+bos;
就是插件要额外计算底部留空,我在这个基础上在多加了他父级元素的高和顶部距离,保证他不会溢出他的父辈。
虽然感觉有点亡羊补牢,之后会再改改吧。
8 回答4.6k 阅读✓ 已解决
6 回答3.3k 阅读✓ 已解决
5 回答2.8k 阅读✓ 已解决
5 回答6.3k 阅读✓ 已解决
4 回答2.2k 阅读✓ 已解决
5 回答1.2k 阅读✓ 已解决
4 回答2.7k 阅读✓ 已解决
主要是通过onscroll判断位置和高度,并修改style。最终还是要用position:fixed。
写了一个大概是最简单的用例,于是有些css细节没照顾到。你看看是否有帮助。