zoukankan      html  css  js  c++  java
  • position:sticky用法

    用户的屏幕越来越大,而页面太宽的话会不宜阅读,所以绝大部分网站的主体宽度和之前相比没有太大的变化,于是浏览器中就有越来越多的空白区域,所以你可能注意到很多网站开始在滚动的时候让一部分内容保持可见,比如,侧边栏的部分区域。position:sticky为此而生。

    position:sticky用法

    position:sticky是一个新的css3属性,它的表现类似position:relative和position:fixed的合体,在目标区域在屏幕中可见时,它的行为就像position:relative; 而当页面滚动超出目标区域时,它的表现就像position:fixed,它会固定在目标位置。

    使用起来也非常简单:

    .sticky{
      position: -webkit-sticky;
      position:sticky;
      top:15px;
    }

    目前来说还需要用私有前缀~~

    浏览器兼容性:

    由于这是一个全新的属性,以至于到现在都没有一个规范,W3C也刚刚开始讨论它,而现在只有webkit nightly版本和chrome 开发版(Chrome 23.0.1247.0+ Canary)才开始支持它。

    另外需要注意的是,如果同时定义了left和right值,那么left生效,right会无效,同样,同时定义了top和bottom,top赢~~

    fall back

    虽然其它浏览器尚不支持,但是实现起来其实不难,我们可以用js简单实现:

    HTML
    <div  class="header"></div>
    CSS
    .sticky{
      position:fixed;
      top:0;
    }
    .header{
      100%;
      background:#F6D565;
      padding:25px
    }
    JS
    var header = document.querySelector('.header');
    var origOffsetY = header.offsetTop;
     
    function onScroll(e) {
      window.scrollY>= origOffsetY ? header.classList.add('sticky'):header.classList.remove('sticky');
    }
     
    document.addEventListener('scroll', onScroll);

    这里是一个简单的demo

    嗯,对于前端来说,新技术用于提升用户体验才能体现其价值~~

  • 相关阅读:
    docker相关
    多线程
    设计模式
    ftp下载乱码问题
    Windows无法启动SQL server 代理服务(服务器)错误1067:进程意外终止
    Struts2 if标签
    Java项目编译时经常会出现不编译,或者报一些假性错误
    ajaxSubmit 上传文件 提示下载json处理
    MySQL中优化sql语句查询常用的30种方法
    mybatis 中的where标签
  • 原文地址:https://www.cnblogs.com/tig666666/p/6022624.html
Copyright © 2011-2022 走看看