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

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

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

 <!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>为了测试防抖和节流</title>
<link rel="stylesheet" type="text/css" href="css/cssReset.css"/>
<style type="text/css"> .class1{
width: 100px;
height: 200px;
background: #CCCCCC;
}
#box{
width: 50px;
height: 50px;
background: #289A62;
position: absolute;
right: 0;
top: 0;
} </style>
</head>
<body>
<div class="class1">1</div>
<div class="class1">2</div>
<div class="class1">3</div>
<div class="class1">4</div>
<div class="class1">5</div>
<div class="class1">6</div>
<div class="class1">7</div>
<div class="class1">8</div>
<div class="class1">9</div>
<div class="class1">10</div>
<div class="class1">11</div>
<div class="class1">12</div>
<div class="class1">13</div>
<div class="class1">14</div>
<div class="class1">15</div>
<div class="class1">16</div>
<div class="class1">17</div>
<div class="class1">18</div>
<div class="class1">19</div>
<div class="class1">20</div> <div id="box">
返回顶部
</div>
</body>
<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
<script type="text/javascript"> var windows_height = $(window).height();
var scroll_height = $(window).scrollTop();
setTimeout(function(){
$("#box").animate({
"top":(windows_height/2)+ scroll_height-25
},1000)
},100)
var time1 = false; //给延时器命名
$(window).scroll(function(){
if(time1){
clearInterval(time1) }
time1 = setTimeout(function(){
var scroll_height = $(window).scrollTop();
console.log(scroll_height); $("#box").stop();
$("#box").animate({
"top":(windows_height/2)+ scroll_height-25
},1000)
time1 = false;
},500)
})
// $(window).scroll(function(){
// var scroll_height = $(window).scrollTop();
// console.log(scroll_height);
//
// $("#box").stop();
// $("#box").animate({
// "top":(windows_height/2)+ scroll_height-25
// },1000)
// })
</script>
</html>

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

js防抖和节流的更多相关文章

  1. 深入理解JS防抖与节流

    参考博客:JS防抖和节流,感谢作者的用心分享 日常开发过程中,滚动事件做复杂计算频繁调用回调函数很可能会造成页面的卡顿,这时候我们更希望把多次计算合并成一次,只操作一个精确点,JS把这种方式称为deb ...

  2. 因为它,我差点删库跑路:js防抖与节流

    前言 前端踩雷:短时间内重复提交导致数据重复. 对于前端大佬来说,防抖和节流的技术应用都是基本操作.对于"兼职"前端开发的来说,这些都是需要躺平的坑. 我们今天就来盘一盘js防抖与 ...

  3. 面试必问题:JS防抖与节流

    摘要:防抖与节流可谓是面试常见,其实很好理解,下面带你分分钟了解防抖与节流的基本思想与写法~ 本文分享自华为云社区<JS防抖与节流快速了解与应用>,作者:北极光之夜. . 一.速识防抖: ...

  4. 2019 面试准备 - JS 防抖与节流 (超级 重要!!!!!)

    Hello 小伙伴们,如果觉得本文还不错,记得给个 star , 你们的 star 是我学习的动力!GitHub 地址 本文涉及知识点: 防抖与节流 重绘与回流 浏览器解析 URL DNS 域名解析 ...

  5. js防抖和节流优化浏览器滚动条滚动到最下面时加载更多数据

    防抖和节流,主要是用来防止过于平凡的执行某个操作,如浏览器窗口变化执行某个操作,监听某个input输入框keyup变化,瀑布流布局时Y轴滚动,图片加载. js函数的防抖 经过一段事件才执行某个操作,如 ...

  6. 详谈js防抖和节流

    本文由小芭乐发表 0. 引入 首先举一个例子: 模拟在输入框输入后做ajax查询请求,没有加入防抖和节流的效果,这里附上完整可执行代码: <!DOCTYPE html> <html ...

  7. JS 防抖和节流

    防抖和节流 在处理高频事件,类似于window的resize或者scorll,或者input输入校验等操作时.如果直接执行事件处理器,会增大浏览器的负担,严重的直接卡死,用户体验非常不好. 面对这种情 ...

  8. JS防抖和节流:原来如此简单

    一.函数防抖 前端开发工作中,我们经常在一个事件发生后执行某个操作,比如鼠标移动时打印一些东西: window.addEventListener("mousemove", ()=& ...

  9. js防抖与节流了解一下

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

随机推荐

  1. 第七章 mysql 事务索引以及触发器,视图等等,很重要又难一点点的部分

    [索引] 帮助快速查询 MyISAM ,InnoDB支持btree索引 Memory 支持 btree和hash索引 存储引擎支持 每个表至少16个索引   总索引长度至少256字节   创建索引的优 ...

  2. ThreadPoolExcuter源码解析(一)

    1.ThreadPoolExcuter原理说明 首先我们要知道为什么要使用ThreadPoolExcuter,具体可以看看文档中的说明: 线程池可以解决两个不同问题:由于减少了每个任务的调用开销,在执 ...

  3. iOS开发中数据持久化

    使用几个小例子分别实现 归档NSKeyedArchiver.NSUserDefaults.plist文件数据存储,简单直观.代码地址

  4. 唱吧DevOps的落地,微服务CI/CD的范本技术解读----最大的难点并不是实际业务代码的编写,而是服务的监控和调试以及容器的编排

    1.业务架构:从单体式到微服务 K歌亭是唱吧的一条新业务线,旨在提供线下便捷的快餐式K歌方式,用户可以在一个电话亭大小的空间里完成K歌体验.K歌亭在客户端有VOD.微信和Web共三个交互入口,业务复杂 ...

  5. MySQL索引及查询优化总结 专题

    小结:db名与应用名相同,表名:业务名_此表的作用 ,表名表示内容,不体现数量,如果表示boolean概念,表名需要使用is_业务含义来表示,但POJO中不应该出现isXXX,因为不方便序列化,中间的 ...

  6. Offcie2013 无法显示 Aurora解决方法

    问题:安装Office2013和Aurora后,Word菜单栏中无Aurora 原因:aurora安装目录中缺失office.dll,word2013未加载COM文件office.dll和模板文件wo ...

  7. jQuery的入口函数四种写法

    1.第一种: $(document).ready(function(){ }); 2.第二种(最简洁的写法,推荐): $(function(){ }); 3.第三种: jQuery(document) ...

  8. in_flight_pqueue.go

    // right child         }         if (*pq)[j].pri >= (*pq)[i].pri {             break         }    ...

  9. C++中的内联函数和C中的宏定义的区别

    在C++中内联函数: 内联函数即是在函数的声明和和定义前面加上“inline”关键字,内联函数和常规函数一样,都是按照值来传递参数的,如果参数为表达式,如4.5+7.5,则函数将传递表达式的值(这里为 ...

  10. 【dfs判负环】BZOJ1489: [HNOI2009]最小圈

    Description 找出一个平均边权最小的圈. Solution 经典问题,二分答案判断有无负环. 但数据范围大,普通spfa会超时,于是用dfs判负环(快多了). 思路是dis设为0,枚举每个点 ...