zoukankan      html  css  js  c++  java
  • js防抖和节流

      今天在网上看到的,里面的内容非常多。说下我自己的理解。

      所谓的防抖就是利用延时器来使你的最后一次操作执行。而节流是利用时间差的办法,每一段时间执行一次。下面是我的代码:

    这段代码是右侧的小滑块跟随页面一起滑动。

     1 <!DOCTYPE html>
     2 <html>
     3     <head>
     4         <meta charset="UTF-8">
     5         <title>为了测试防抖和节流</title>
     6         <link rel="stylesheet" type="text/css" href="css/cssReset.css"/>
     7         <style type="text/css">
     8             
     9             .class1{
    10                  100px;
    11                 height: 200px;
    12                 background: #CCCCCC;
    13             }
    14             #box{
    15                  50px;
    16                 height: 50px;
    17                 background: #289A62;
    18                 position: absolute;
    19                 right: 0;
    20                 top: 0;
    21             }
    22             
    23         </style>
    24     </head>
    25     <body>
    26         <div class="class1">1</div>
    27         <div class="class1">2</div>
    28         <div class="class1">3</div>
    29         <div class="class1">4</div>
    30         <div class="class1">5</div>
    31         <div class="class1">6</div>
    32         <div class="class1">7</div>
    33         <div class="class1">8</div>
    34         <div class="class1">9</div>
    35         <div class="class1">10</div>
    36         <div class="class1">11</div>
    37         <div class="class1">12</div>
    38         <div class="class1">13</div>
    39         <div class="class1">14</div>
    40         <div class="class1">15</div>
    41         <div class="class1">16</div>
    42         <div class="class1">17</div>
    43         <div class="class1">18</div>
    44         <div class="class1">19</div>
    45         <div class="class1">20</div>
    46         
    47         <div id="box">
    48             返回顶部
    49         </div>
    50     </body>
    51     <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
    52     <script type="text/javascript">
    53         
    54         var windows_height = $(window).height();
    55         var scroll_height = $(window).scrollTop();
    56         setTimeout(function(){
    57             $("#box").animate({
    58                 "top":(windows_height/2)+ scroll_height-25
    59             },1000)
    60         },100)
    61         var time1 = false; //给延时器命名
    62         $(window).scroll(function(){
    63             if(time1){
    64                 clearInterval(time1)
    65                 
    66             }
    67             time1 = setTimeout(function(){
    68                 var scroll_height = $(window).scrollTop();
    69                 console.log(scroll_height);
    70                 
    71                 $("#box").stop();
    72                 $("#box").animate({
    73                     "top":(windows_height/2)+ scroll_height-25
    74                 },1000)
    75                 time1 = false;
    76             },500)
    77         })
    78 //        $(window).scroll(function(){
    79 //            var scroll_height = $(window).scrollTop();
    80 //            console.log(scroll_height);
    81 //            
    82 //            $("#box").stop();
    83 //            $("#box").animate({
    84 //                "top":(windows_height/2)+ scroll_height-25
    85 //            },1000)
    86 //        })
    87     </script>
    88 </html>

    这里面只有防抖,没有节流,大家注意一下。78——86行是我没有做防抖的样子。大家可以快速的拉动滚动条,看看这两者的区别。我自己觉得还是没有防抖的好看,哈哈。

  • 相关阅读:
    软件开发平台正在面临一次重大的升级,java, net比起来简直弱爆了,新型的Html5+JS+JSON开发平台正在形成 人工智能
    Qt编写地图综合应用48地球模式、三维模式、地铁模式
    Qt数据库应用1数据导入导出csv
    Qt编写地图综合应用50获取区域边界
    Qt编写地图综合应用49地图类型(街道图、卫星图)
    Qt数据库应用2数据导出到xls
    Qt编写地图综合应用47经纬度地址互相转换
    C# 线程手册 第七章 网络和线程 系列
    SQL Server Transaction Log Truncate && Shrink
    a href=#与 a href=javascript:void(0) 的区别 打开新窗口链接的几种办法
  • 原文地址:https://www.cnblogs.com/daniao11417/p/10234830.html
Copyright © 2011-2022 走看看