滚动条事件—固定div(第一篇)
2015-12-03 17:24
225 查看
最近在弄公司的官网,产品经理要求的特效是从魅族官网、苹果官网、360官网与36Kr官网上而来!最开始的时候我是各种惧怕,这全都是些大公司的网站,技术要求肯定特别高,我能做出来吗?但后来研究着研究着就通了!嘿嘿!这种感觉很棒!不啰嗦了!说正题......
这里要讲得是苹果官网子页面也就是iPhone6 s的详细介绍界面里面的一个小效果:最上方有两个导航栏,第一个为整个网站的大导航栏,第二个为这个页面的小导航栏。
当滚动条像下滚动时,大导航栏不见,小导航栏就固定在最上方。
我最开始的思路是这样的:获取滚动条滚动的距离,减去大导航栏的高度,当这个值等于0或大于0时用js改变小导航栏的css样式。
但我最后的代码确是这样的(只是简单做个练习,不要计较美观):
<style>
body{height: 2000px;}
.h1{height: 50px; width: 100%;background-color: #000000;}
.h2{height: 50px; width: 100%;background-color: red;}
</style>
<div class="h1"></div>
<div class="h2" id="hh"></div>
<script>
window.onscroll=function(){
//获取滚动条的垂直距离
var h=document.documentElement.scrollTop||document.body.scrollTop;
var t=document.getElementById("hh");
if(h>=50){
t.style.position="fixed";
t.style.top="0";
}
if(h<50){
t.style.position="static";
t.style.top="50";
}
}
</script>
这里的思路是:直接获取滚动条距顶部的距离,大于等于大导航栏的高度时(滚动条向下滚动),小导航栏的position为fixed(固定);当小于大导航栏的高度时(滚动条向上滚动),小导航栏的position值改为默认值static,取消固定。
我算个小菜鸟,只是记录一些自己遇到的效果,想不断成长而已!有错误的地方请大家指正,我自己发现后也会改的!嘿嘿.......
这里要讲得是苹果官网子页面也就是iPhone6 s的详细介绍界面里面的一个小效果:最上方有两个导航栏,第一个为整个网站的大导航栏,第二个为这个页面的小导航栏。
当滚动条像下滚动时,大导航栏不见,小导航栏就固定在最上方。
我最开始的思路是这样的:获取滚动条滚动的距离,减去大导航栏的高度,当这个值等于0或大于0时用js改变小导航栏的css样式。
但我最后的代码确是这样的(只是简单做个练习,不要计较美观):
<style>
body{height: 2000px;}
.h1{height: 50px; width: 100%;background-color: #000000;}
.h2{height: 50px; width: 100%;background-color: red;}
</style>
<div class="h1"></div>
<div class="h2" id="hh"></div>
<script>
window.onscroll=function(){
//获取滚动条的垂直距离
var h=document.documentElement.scrollTop||document.body.scrollTop;
var t=document.getElementById("hh");
if(h>=50){
t.style.position="fixed";
t.style.top="0";
}
if(h<50){
t.style.position="static";
t.style.top="50";
}
}
</script>
这里的思路是:直接获取滚动条距顶部的距离,大于等于大导航栏的高度时(滚动条向下滚动),小导航栏的position为fixed(固定);当小于大导航栏的高度时(滚动条向上滚动),小导航栏的position值改为默认值static,取消固定。
我算个小菜鸟,只是记录一些自己遇到的效果,想不断成长而已!有错误的地方请大家指正,我自己发现后也会改的!嘿嘿.......
相关文章推荐
- Mach-O 可执行文件
- iOS开发 @synthesize + @property 用法
- 【leetcode】 Power of Two
- Linux学习笔记(8)之Shell编程入门--输入输出、引号
- C++primer plus第六版课后编程练习答案13.3
- android sqlite 的架构和语法
- mysql中如何判断当前是字符 mysql判断字段中有无汉字
- PCA主成分分析学习
- 专业程序员必习:最牛B的编码套路
- 3.python学习笔记:python下的多进程与多线程(一)
- 向量
- 嵌入式系统内存泄漏检测
- Shell: how to list all db links in oracle DB to generate a flat file (生成dblink列表文件)
- 查看分区表中分区详细信息
- Oracle 12c创建用户container参数
- 2015杭电新生赛1007油菜花王国【并查集】【图论】
- Linux学习笔记(六、链接命令)
- Ubuntu 15.10使用——系统安装
- SequenceInputStream
- Java面向对象编程-第8章学习笔记