JavaScript防抖案例講解
原理
防抖的原理是:你盡管觸發(fā)事件,但是我一定要在事件觸發(fā)n秒之后才執(zhí)行,如果你在一個(gè)事件觸發(fā)的n秒內(nèi)又觸發(fā)了這個(gè)事件,那我就以新的事件的時(shí)間為準(zhǔn),n秒后再執(zhí)行。總之,就是要等到你觸發(fā)完事件n秒內(nèi)不再觸發(fā)事件,我才執(zhí)行。
案例
<!DOCTYPE html> <html lang="zh-cmn-Hans"> <head> <meta charset="utf-8"> <meta http-equiv="x-ua-compatible" content="IE=edge, chrome=1"> <title>debounce</title> <style> * { margin: 0; padding: 0; } #container { width: 100%; height: 200px; line-height: 200px; text-align: center; color: #fff; background-color: #444; font-size: 30px; } </style> </head> <body> <div id="container"></div> <script src="debounce.js"></script> </body> </html>
function getUserAction(e) { console.log(this); console.log(e); container.innerHTML = count++; }; function debounce(func, wait) { var timeout; return function () { clearTimeout(timeout); timeout = setTimeout(() => { func.apply(this, arguments); // 解決this和事件對(duì)象event }, wait); } } container.onmousemove = debounce(getUserAction, 1000);
到此這篇關(guān)于JavaScript防抖案例講解的文章就介紹到這了,更多相關(guān)JavaScript防抖內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- JS防抖節(jié)流函數(shù)的實(shí)現(xiàn)與使用場(chǎng)景
- JavaScript的防抖和節(jié)流案例
- 如何理解JS函數(shù)防抖和函數(shù)節(jié)流
- Javascript節(jié)流函數(shù)throttle和防抖函數(shù)debounce
- JavaScript 防抖和節(jié)流遇見的奇怪問題及解決
- 如何在面試中手寫出javascript節(jié)流和防抖函數(shù)
- js節(jié)流防抖應(yīng)用場(chǎng)景,以及在vue中節(jié)流防抖的具體實(shí)現(xiàn)操作
- 淺談JavaScript節(jié)流和防抖函數(shù)
相關(guān)文章
JavaScript中函數(shù)(Function)的apply與call理解
這篇文章主要介紹了JavaScript中函數(shù)(Function)的apply與call理解,本文講解了JavaScript函數(shù)調(diào)用分為4中模式以及通過apply和call實(shí)現(xiàn)擴(kuò)展和繼承兩方面,需要的朋友可以參考下2015-07-07JS倒計(jì)時(shí)兩種實(shí)現(xiàn)方式代碼實(shí)例
這篇文章主要介紹了JS倒計(jì)時(shí)兩種實(shí)現(xiàn)方式代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07jQuery實(shí)現(xiàn)為控件添加水印文字效果(附源碼)
這篇文章主要介紹了jQuery實(shí)現(xiàn)為控件添加水印文字效果的方法,涉及jQuery插件jquery.tinywatermark.js的使用技巧,并提供了源碼供讀者下載參考,需要的朋友可以參考下2015-12-12JavaScript拖拽、碰撞、重力及彈性運(yùn)動(dòng)實(shí)例分析
這篇文章主要介紹了JavaScript拖拽、碰撞、重力及彈性運(yùn)動(dòng)實(shí)現(xiàn)方法,涉及JavaScript數(shù)學(xué)運(yùn)算結(jié)合時(shí)間函數(shù)實(shí)現(xiàn)運(yùn)動(dòng)效果的相關(guān)技巧,需要的朋友可以參考下2016-01-01微信小程序?qū)崿F(xiàn)翻牌抽獎(jiǎng)動(dòng)畫
這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)翻牌抽獎(jiǎng)動(dòng)畫,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-09-09