首页 > 代码库 > position新属性sticky
position新属性sticky
今天无意中发现了一个weikit的一个有趣的私有属性-webkit-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 {
width: 100%;
background: #F6D565;
padding: 25px 0;
}
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);
嗯,对于前端来说,新技术用于提升用户体验才能体现其价值~~(可以应用到移动项目中哦)
position新属性sticky
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。