• 原生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>

    效果图:

  • 相关阅读:
    【leetcode】1295. Find Numbers with Even Number of Digits
    【leetcode】427. Construct Quad Tree
    【leetcode】1240. Tiling a Rectangle with the Fewest Squares
    【leetcode】1292. Maximum Side Length of a Square with Sum Less than or Equal to Threshold
    【leetcode】1291. Sequential Digits
    【leetcode】1290. Convert Binary Number in a Linked List to Integer
    【leetcode】1269. Number of Ways to Stay in the Same Place After Some Steps
    【leetcode】1289. Minimum Falling Path Sum II
    【leetcode】1288. Remove Covered Intervals
    【leetcode】1287. Element Appearing More Than 25% In Sorted Array
  • 原文地址:https://www.cnblogs.com/jiechen/p/5467582.html
Copyright © 2020-2023  润新知