浏览一位博主的博客时,发现与我的博客主题很相似。但是,我的博客中头部header不能在页面滚动时消失。于是,我开始添加效果,并做出了相应的案例提供参考。
Ps: 案例是基于bootstrap的响应式设计
分析
实现这个功能其实并不难。主要就是:
header需要的css样式,如:position: fixed;- 给定
header实现动画的css样式,如animation CSS3写入@keyframes添加动画js的类名转换作用
下面我们开始列出代码,实现功能。
实现
给header一个id="header"这个在后面的js代码中会用到。
header的css
1 | |
其中position: fixed和top: 0可以让header相对body固定在顶部,而z-index: 10,则是让header处于页面的最前面,滑动页面时,header则一直覆盖在其它元素上面。
给定header实现动画的css
1 | |
animated、slideDown、slideUp 分别是header的类名,只不过在html中不需要给header添加这些类名,因为js会添加类名,显示动画效果。
slideDown指鼠标上滚时,目标元素向下滑动,意为出现
slideUp指鼠标下滚时,目标元素向上滑动,意为消失
| 名称 | 作用 |
|---|---|
| -webkit- | 适用于Chrome 和 Safari |
| animation-duration | 动画执行一次持续的时长 |
| animation-fill-mode | 规定对象动画时间之外的状态 |
| animation-name | 规定 @keyframes 动画的名称 |
@keyframes添加动画
1 | |
| 名称 | 作用 |
|---|---|
| @keyframes | 规定动画(Internet Explorer 10、Firefox 以及 Opera 支持) |
| @-webkit-keyframes | Chrome 和 Safari 支持 |
| transform | 可以对网页元素进行变换的属性,比如旋转,缩放,移动 |
| translate | translate是transform中的属性,translate指的是元素的移动,括号中的值分别指y轴的平移量 |
js的类名转换作用
提供使用headroom.js源码的地址http://www.bootcdn.cn/headroom/
- 引用
js文件
1 | |
- 写外部
js代码
1 | |
以上一些参数的解释有些抽象,此网址的参数改变更为具体http://www.bootcss.com/p/headroom.js/playroom/
我的案例 https://runcoderhang.github.io/some-cases/demo-5/demo.html