tuofei13

html滚动到顶部固定最简单实现

1.今天遇到一个需求:搜索框滑动到顶部固定到顶部位置

先给解决方式,两行css搞定。

.serach-view{
  position:sticky;
  top: 0;
}

一开始的想法是通过js实现,监听浏览器的滚动事件,判断页面滚动距离大于 相对于页面顶部的距离时,将元素的 position 属性值 改为 fexid。然后在网上找到了这样一段代码

let nav = document.querySelector(\'.nav\')

window.addEventListener(\'scroll\',function(e){
  if(window.pageYOffset > nav.offsetTop){
    nav.style.position = \'fixed\'
    nav.style.top = \'0px\'
  }else{
    nav.style.position = \'static\'
  }
})

但是本着样式问题能css实现绝不写一行js的懒人原则,我又找了很多资料最后发现position:sticky属性。

position:sticky属性作用是相对定位和固定定位的混合。当元素在窗口内定位方式是relative,当元素滚出屏幕定位方式变为fixed.

所以把元素定位设置为sticky,给个top:0。就可以完美实现元素滑动到顶部固定到顶部位置。

 

分类:

技术点:

相关文章: