position:sticky用法

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

position:sticky用法

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

使用起来也很是简单:前端

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

 

目前来讲还须要用私有前缀~~css3

浏览器兼容性:

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

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

fall back

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

HTML
<div  class="header"></div>

 

CSS
.sticky{
  position:fixed;
  top:0;
}
.header{
  width: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网站

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

相关文章
相关标签/搜索