码迷,mamicode.com
首页 > Web开发 > 详细

原生js实现吸顶导航和回到顶部特效

时间:2016-05-07 06:34:55      阅读:1405      评论:0      收藏:0      [点我收藏+]

标签:

  1 <!DOCTYPE html>
  2 <html lang="en">
  3 <head>
  4     <meta charset="UTF-8">
  5     <title>吸顶导航特效</title>
  6     <style type="text/css">
  7     body{
  8         margin: 0;
  9         padding: 0;
 10     }
 11     .main{
 12         width: 100%;
 13         background: #ccc;
 14         margin: 10px auto 0;
 15         position: relative;
 16     }
 17     .content{
 18         width: 100%;
 19         height: 400px;
 20         background: #0FF2D8;
 21         margin: 10px auto 0;
 22         line-height: 400px;
 23 
 24     }
 25     .navigation{
 26         width: 100%;
 27         height: 40px;
 28         background: #E589B4;
 29         margin:  auto 0;
 30         top: 400px;
 31         left: 0;
 32         position: absolute;
 33     }
 34     .tab{
 35         width: 180px;
 36         height: 40px;
 37         background: #DB3179;
 38         float: left;
 39         margin-left: 5px;
 40         line-height: 40px;
 41         text-align: center;
 42     }
 43     #div1{
 44         width: 100px;
 45         height: 100px;
 46         background: green;
 47         position: fixed;
 48         bottom: 0;
 49         right: 0;
 50         display: none;
 51         line-height: 100px;
 52         text-align: center;
 53 
 54     }
 55     </style>
 56     <script type="text/javascript">
 57     window.onload = function(){
 58         var navigaOffsetTop = 0;
 59         function my_getElementsByClassName(class_name){
 60             var arr = [];
 61             elements = document.getElementsByTagName(*);
 62             for (var i = 0; i < elements.length; i++) {
 63                 if(elements[i].className == class_name){
 64                     arr[arr.length] = elements[i];
 65 
 66                 }
 67             }
 68             return arr;
 69         }
 70         //导航条悬停在顶部
 71         function navigaStayTop(){
 72             var navigationBar = [];
 73             if(document.getElementsByClassName){
 74                 navigationBar = document.getElementsByClassName(navigation);
 75             }else{ 
 76                 //非标准IE下
 77                 navigationBar = my_getElementsByClassName(navigation);
 78             }
 79             var scrollTop = document.body.scrollTop || document.documentElement.scrollTop; 
 80             if (scrollTop > navigaOffsetTop){
 81                 navigationBar[0].style.top = scrollTop + "px";
 82             } else{
 83                 navigationBar[0].style.top = navigaOffsetTop + "px";
 84             }
 85         }
 86         //给导航条上七个tab加上点击事件
 87         var tabs = [];
 88         if(document.getElementsByClassName){
 89             tabs = document.getElementsByClassName(tab);
 90         }else{
 91             tabs = my_getElementsByClassName("tab");
 92         }
 93 
 94         var contents = [];
 95         if (document.getElementsByClassName) {
 96             contents = document.getElementsByClassName(content);
 97 
 98         } else{
 99             //Ie
100             contents = my_getElementsByClassName(content);
101         };
102         tabs[0].onclick=function(){ 
103         window.scrollTo(0, contents[2].offsetTop); 
104         } 
105         tabs[1].onclick=function(){ 
106         window.scrollTo(0, contents[3].offsetTop); 
107         } 
108         tabs[2].onclick=function(){ 
109         window.scrollTo(0, contents[4].offsetTop); 
110         } 
111         tabs[3].onclick=function(){ 
112         window.scrollTo(0, contents[5].offsetTop); 
113         } 
114         tabs[4].onclick=function(){ 
115         window.scrollTo(0, contents[6].offsetTop); 
116         } 
117         tabs[5].onclick=function(){ 
118         window.scrollTo(0, contents[7].offsetTop); 
119         }
120         tabs[6].onclick=function(){ 
121         window.scrollTo(0, contents[8].offsetTop); 
122         } 
123  
124         //获取页面上导航条到顶部的位置
125         var navigationBar = [];
126         if (document.getElementsByClassName) {
127             navigationBar = document.getElementsByClassName(navigation);
128 
129         } else{
130             navigationBar = my_getElementsByClassName(navigation);
131 
132         }
133         navigaOffsetTop = navigationBar[0].offsetTop;
134 
135 
136         //给滚动条以及鼠标加上滚动事件 
137         // window.onscroll= naviga_stay_top; 
138         // document.onmousewheel= navigaStayTop; 
139         if(window.attachEvent){
140             window.attachEvent("onmousewheel", navigaStayTop); 
141             window.attachEvent("onscroll", navigaStayTop); 
142 
143             document.attachEvent("onmousewheel", navigaStayTop); 
144             document.attachEvent("onscroll", navigaStayTop);
145 
146         }else{
147             window.addEventListener("mousewheel", navigaStayTop,false); 
148             window.addEventListener("scroll", navigaStayTop,false); 
149 
150             document.addEventListener("mousewheel", navigaStayTop,false); 
151             document.addEventListener("scroll", navigaStayTop,false); 
152 
153         }
154         //回到顶部
155         var div1 = document.getElementById(div1);
156         window.onscroll = function(){
157             var t = window.pageYOffset;
158             if (t>200) {
159                 div1.style.display = block;
160 
161             } else{
162                 div1.style.display = none;
163 
164             }
165         }
166         div1.onclick = function(){
167             window.scrollTo(0,0);
168         }
169 
170 
171     }
172     </script>
173 </head>
174 <body>
175     <div class="main">
176         <div class="content">1</div>
177             <div id="nav" class="navigation"> 
178                 <div class="tab">概念</div>
179                 <div class="tab">设计</div>
180                 <div class="tab">功能</div>
181                 <div class="tab">操作系统</div>
182                 <div class="tab">技术规格</div>
183                 <div class="tab">购买方式</div>
184                 <div class="tab">付款方式</div>
185             </div>
186         <div class="content">2</div>
187         <div class="content">3</div>
188         <div class="content">4</div>
189         <div class="content">5</div>
190         <div class="content">6</div>
191         <div class="content">7</div>
192         <div class="content">8</div>
193         <div class="content">9</div>
194         <div class="content">10</div>
195     </div>
196     <div id="div1">回到顶部</div>
197 </body>
198 </html>

效果图:

技术分享

原生js实现吸顶导航和回到顶部特效

标签:

原文地址:http://www.cnblogs.com/jiechen/p/5467582.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!