超级好用的css属性:sticky

651 阅读1分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第6天,点击查看活动详情

1.sticky属性介绍

sticky翻译成汉语就是粘性的,粘等。利用粘贴属性可以十分容易的实现日常开发中的两个例子

  • 吸顶效果
  • 回到顶部效果

2.吸顶效果实现

如下图所示,当我们头部在页面滚动时始终吸附在页面顶部上

3.gif

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    .header{
      height: 50px;
      background: red;
      position: sticky;
      position: -webkit-sticky;
      top: 0;
    }
    .footer{
      height: 1000px;
      background-color: bisque;
    }
  </style>
</head>
<body>
  <div class="box">
    <div class="header">头部</div>
    <div class="footer">底部</div>
  </div>
</body>
</html>

使用总结

在需要吸顶的元素添加3行css代码即可。其中top表示距离自己初始位置的顶部偏移距离

.header{
  position: sticky;
  position: -webkit-sticky;
  top: 0;
 }
 

3.返回顶部实现

正常开发返回顶部功能,我们需要使用js去监听页面的滚动距离,并且需要配合css完成一系列操作才可以实现。

但是使用sticky属性,我们可以无需js的介入就可以完成返回顶部功能

示例

  1. 使用a标签,并添加href='#'。可以在点击a标签时页面自动回到最顶部。

  2. 逻辑是当页面滚出到一定位置,回到顶部按钮显示,因此我们只需要将a标签偏移到自己需要显示的位置上。然后使用sticky属性将a标签粘贴到这个位置上。

     <!DOCTYPE html>
     <html lang="en">
     <head>
       <meta charset="UTF-8">
       <meta http-equiv="X-UA-Compatible" content="IE=edge">
       <meta name="viewport" content="width=device-width, initial-scale=1.0">
       <title>Document</title>
       <style>
         html,body{
           scroll-behavior: smooth;
         }
         .content{
           height: 2200px;
           background-color: bisque;
         }
         a{
           /*基础样式--忽略*/
           display: block;
           text-decoration: none;
           color:#fff;
           width: 80px;
           line-height: 80px;
           border-radius: 50%;
           background: blue;
           text-align: center;
    
           /*关键核心css*/
           position: sticky;
           top: -100px;
           float: right;
           transform: translateY(100vh);
           margin-right: 20px;
         }
       </style>
     </head>
     <body>
       <div class="box">
         <a href="#">返回顶部</a>
         <div class="content">内容区域</div>
       </div>
     </body>
     </html>
     
    

    效果图

1.gif

总结

以上是我的个人对sticky的小小了解,希望大家可以多多支持和喜欢,点赞,评论。