防抖的兩種操作
防抖:當事件被觸發時,設定一個週期延遲執行動作,若期間又被觸發,則重新設定週期,直到週期結束,執行動作
實現 通過滑鼠移動事件、改變num的值
let num = 0
let content = document.getElementById('box')
function count() {
content.innerHTML = num++
}
//過兩秒後執行 (延時執行)
// function debounce(func, delay) {
// let timeOut = null
// return function () {
// if (timeOut) clearTimeout(timeOut)
// timeOut = setTimeout(function () {
// func.apply(this, arguments)
// }, delay)
// }
// }
// 先執行 過2秒 (立即執行)
function debounce(func,delay){
let timeOut=null
return function () {
if(timeOut) clearTimeout(timeOut)
let flag=!timeOut //用來判斷是否有定時器的
timeOut=setTimeout(()=>{ //增加一個定時器
timeOut=null //清空當前定時器控制程式碼
},delay)
//判斷定時為空時 執行 所以第一次執行時執行
if(flag){
func.apply(this,arguments)
}
}
}
content.onmousemove = debounce(count, 1000)
相關文章
- 抖音和微博:兩種不同的@人方案
- 防抖
- 防抖節流
- 防抖函式函式
- 節流與防抖
- js面試(防抖)JS面試
- Input框防抖動
- 防抖與節流
- 防抖和節流
- JavaScript防抖實現JavaScript
- 如何寫出自己的underscore防抖
- 函式的防抖和節流函式
- 函式的防抖與節流函式
- 理解函式防抖Debounce函式
- js防抖和節流JS
- debounce(防抖) & throttle(節流)
- javascript函式防抖DebounceJavaScript函式
- 節流防抖封裝封裝
- 淺談JavaScript的防抖與節流JavaScript
- Linux提供哪兩種操作環境?有何不同?Linux
- Groovy獲取Bean兩種方式(奇淫技巧操作)Bean
- 在lua中操作http請求有兩種方式HTTP
- 防抖動資料請求
- 函式節流和防抖函式
- JavaScript之節流與防抖JavaScript
- 筆記-JavaScript[節流][防抖]筆記JavaScript
- 防抖和節流原理分析
- 函式防抖和節流函式
- js 防抖實戰講解JS
- JavaFx 實現按鈕防抖Java
- React如何原生實現防抖?React
- js函式中的節流和防抖JS函式
- Vue元件實現函式防抖Vue元件函式
- Vue實現函式防抖元件Vue函式元件
- 前端效能優化之防抖-debounce前端優化
- 當Flutter遇到節流與防抖Flutter
- js 函式防抖和節流JS函式
- 防抖原理以及簡單實現