元素用sticky定位 top为0
现在希望监听元素是否置顶
我的思路是监听元素的位置 如果top是0就说明置顶了
貌似没有监听元素位置变化的事件
如何处理 谢谢
元素用sticky定位 top为0
现在希望监听元素是否置顶
我的思路是监听元素的位置 如果top是0就说明置顶了
貌似没有监听元素位置变化的事件
如何处理 谢谢
监听的话可以了解下MutationObserver ,但是兼容性不太好,最低ie11。
向下兼容的话,定时器是一种解决方法,但是性能影响太大,所以一般都是考虑哪些因素会改变该元素的位置,然后进行监听。
13 回答12.7k 阅读
7 回答1.9k 阅读
3 回答1.1k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
6 回答812 阅读✓ 已解决
6 回答1k 阅读
2 回答1.3k 阅读✓ 已解决
google开发者提供了一个监测sticky位置的解决方案:需要翻墙
但是我用了一个土办法就是用以下的滚动事件函数
页面滚动时,遍历所有sticky元素 如果相对屏幕的高度小于30px(这里被sticky的元素高度为固定30px) 则说明是当前置顶的元素
补充:
借鉴google的方法,使用intersectionOberver实现如下: