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);

嗯,对于前端来说,新技术用于提升用户体验才能体现其价值~~(可以应用到移动项目中哦)

时间: 2024-08-09 21:49:53

position新属性sticky的相关文章

position 的属性值

理论上来说,全部 position 的取值有8个 包括:position:static | relative | absolute | fixed | sticky |  initial | inherit | unset 其中最常用的是 static .relative.absolute.fixed 和 sticky initial.inherit.unset 是css的关键字,任何css属性的取值都可以设置这几个值 position: static 默认值,在正常流中,对设置的 top .l

两点补充——CSS3新属性以及弹性布局

CSS3 新属性 一.[ CSS3新增属性前缀 ] 1.-webkit-:chrome/safari 2.-moz-:火狐 3.-mo-:IE 4.-o-: Opera 欧朋 二 .[CSS 长度单位] 1.px:像素.长度固定,表示分辨率占几个像素点: 2.%:表示相对于默认值的百分比: 3.em:长度与元素的字号挂钩. rem:长度与根元素的字号挂钩. 即与html 的 font-size 挂钩,若不设置,默认16px . [ em与rem区别 ] em与当前元素自身的font-size挂钩

(二)给IE6-IE9中的input添加HTML5新属性-placeholder

同样是最近遇到的一个小问题.因为IE9以下input是不支持placeholder属性的.在网上找到了解决方案,果断带走.正如鲁迅先生所说的‘拿来主义’:运用脑髓,放出眼光,自己来拿!感谢.借花献佛在这里记录分享下. 用法很简单,在代码中引入placeholder.js,并加入后面的一段代码就行了. 1 <script src="jquery-1.11.3.js"></script> 2 <!--IE8-IE6支持html5 placeholder新属性

基于css3新属性transform及原生js实现鼠标拖动3d立方体旋转

基于css3新属性transform,实现3d立方体的旋转 通过原生JS,点击事件,鼠标按下.鼠标抬起和鼠标移动事件,实现3d立方体的拖动旋转,并将旋转角度实时的反应至界面上显示 实现原理:通过获取鼠标点击屏幕时的坐标和鼠标移动时的坐标,来获得鼠标在X轴.Y轴移动的距离,将距离实时赋值给transform属性 从而通过改变transform:rotate属性值来达到3d立方体旋转的效果 HTML代码块: <body> <input type="button" clas

css3的Background新属性

前言 CSS3中出现了几种关于背景图片的新属性:background-origin.background-clip.background-position等.之前大致了解了下,但是background-origin与background-clip的区别尚不清楚.就google了一篇,发现不错,翻译下来吧. 原文连接 : The New Background Position in CSS3 Say Hello to Background-Origin and Background-Clip, C

css的盒模型,及css3的box-sizing新属性

css的盒模型包含了content(元素自身).padding(内边距).border(边框)及margin(外边距). 如图,浏览器控制台elements的computed可以清晰显示元素盒模型,鼠标多动动就明白了:(蓝色区域表示content元素自身,这里是整个窗口的内容) 盒模型有两种:标准模式和怪异模式.在<!DOCTYPE>声明缺失时就会在ie6.ie7.ie8下触发怪异模式 标准模式下:盒子总宽度/高度 = content + padding + border + margin,c

Object.defineProperty() 方法会直接在一个对象上定义一个新属性,或者修改一个已经存在的属性, 并返回这个对象。

Object.defineProperty() 方法会直接在一个对象上定义一个新属性,或者修改一个已经存在的属性, 并返回这个对象. 语法EDIT Object.defineProperty(obj, prop, descriptor) 参数 obj 需要定义属性的对象. prop 需定义或修改的属性的名字. descriptor 将被定义或修改的属性的描述符. 返回值 返回传入函数的对象,即第一个参数obj 描述EDIT 该方法允许精确添加或修改对象的属性.一般情况下,我们为对象添加属性是通过

CSS3新属性:在网站中使用访客电脑里没有安装的字体

CSS的font-family属性使网页可以使用客户电脑里的字体,从而得到多姿多彩的WEB页面,但当客户端没有你想要使用的字体时怎么办呢?我们总不能让每个访问者都去安装一个字体吧?事实上,这是可以的!不过不是访客主动下载的,而是网站开发者帮访客下载安装的,具体怎么实现的,我们还要从字体文件的格式说起.字体格式类型主要有几个大分类:TrueType.Embedded Open Type .OpenType.WOFF .SVG.  TrueType Windows和Mac系统最常用的字体格式,其最大

小习html5为表单添加的新属性

输入框html5新增属性 在学习任何一种语言时都提到“渐进增强”原则,说白了就是兼容性有木有.虽然html5一些新属性在实际使用中受到限制,但是依然阻挡不了伟大的同伴们学习的脚步.近来有点儿忙,这是2016年第一篇文章.内容比较简单只是了解学习. 输入框按输入的内容分,也就是单行输入和多行输入,既是<input type="">和<textarea></textarea> <textarea></textarea>标签属性 a