zoukankan      html  css  js  c++  java
  • 用position: sticky 实现粘性元素区域悬浮效果(转)

    用position: sticky 实现粘性元素区域悬浮效果

    原创 2017年08月02日 20:04:13

    在一些很长的表格中,常常会使用表头悬浮的设计以方便阅读,即在表格离开窗口之前,表头会一直 fixed 悬浮在表格的最顶上。还有许多诸如评论框等元素,也采用了这种被称为 Sticky Pin 或者 粘性元素 的设计。

    这个效果可以用position:sticky实现,设置了sticky的元素,在屏幕范围(viewport)时该元素的位置并不受到定位影响(设置是top、left等属性无效),当该元素的位置将要移出偏移范围时,定位又会变成fixed,根据设置的left、top等属性成固定位置的效果。

    代码如下:

    .sticky {  
        position: -webkit-sticky;  
        position: -moz-sticky;  
        position: -ms-sticky;  
        position: sticky;  
        top: 60px; // 使用和 Fixed 同样的方式设定位置  
    }  
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    页面效果如下: 
    这里写图片描述
    可见机型模块固定显示在正常位置,

    页面往下拉以后,机型固定悬浮在距离顶部导航60px的位置,相当与设置了:

    position:fixed;
    top:60px;
    • 1
    • 2

    这里写图片描述

    可以知道sticky属性有以下几个特点:

    1.该元素并不脱离文档流,仍然保留元素原本在文档流中的位置。 
    2.当元素在容器中被滚动超过指定的偏移值时,元素在容器内固定在指定位置。亦即如果你设置了top: 50px,那么在sticky元素到达距离相对定位的元素顶部50px的位置时固定,不再向上移动。 
    3.元素固定的相对偏移是相对于离它最近的具有滚动框的祖先元素,如果祖先元素都不可以滚动,那么是相对于viewport来计算元素的偏移量

  • 相关阅读:
    数据结构之线性顺序表ArrayList(Java实现)
    大话数据库技术之数据的检索
    JQuery表单元素过滤选择器
    字典序最小问题
    liferay中数据库表的解析未完
    转载如何实现portlet之间的传递参数
    SpringMVC学习笔记1
    深度优先搜索算法
    Ants-穷举算法
    三角形-穷举算法
  • 原文地址:https://www.cnblogs.com/lianghong/p/8065686.html
Copyright © 2011-2022 走看看