zoukankan      html  css  js  c++  java
  • 原生js实现吸顶导航和回到顶部特效

      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>

    效果图:

  • 相关阅读:
    【语言处理与Python】11.3数据采集
    【语言处理与Python】11.4使用XML\11.5使用Toolbox数据
    【语言处理与Python】11.1语料库结构:一个案例研究\11.2语料库生命周期
    【语言处理与Python】10.5段落语义层
    CentOS7.4 删除virbr0虚拟网卡
    套接字超时设置
    Linux命令进制转换、大小写转化
    网络编程第一卷读书笔记(随手记)
    linux下tcp选项TCP_DEFER_ACCEPT研究记录
    Cannot assign requested address出现的原因及解决方案
  • 原文地址:https://www.cnblogs.com/jiechen/p/5467582.html
Copyright © 2011-2022 走看看