position:sticky用法

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

position:sticky是一个新的css3属性,它的表现类似position:relative和position:fixed的合体,在目标区域在屏幕中可见时,它的行为就像position:relative; 而当页面滚动超出目标区域时,它的表现就像position:fixed,它会固定在目标位置。
使用起来也非常简单:
1
2
3
4
5
.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

1
<div class="header"></div>
CSS

1
2
3
4
5
6
7
8
9
.sticky {
  position: fixed;
  top: 0;
}
.header {
  width: 100%;
  background: #F6D565;
  padding: 25px 0;
}
JS

1
2
3
4
5
6
7
8
9
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。
嗯,对于前端来说,新技术用于提升用户体验才能体现其价值~~

http://www.qianduan.net/position-sticky-introduction.html
http://updates.html5rocks.com/2012/08/Stick-your-landings-position-sticky-lands-in-WebKit

 

转载于:https://www.cnblogs.com/anjey/archive/2013/02/18/2916324.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值