浏览一位博主的博客时,发现与我的博客主题很相似。但是,我的博客中头部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