前端頁面鼠標移動監控(鼠標運動、鼠標監控)鼠標節流處理、throttle、限制觸發頻率(setTimeout、clearInterval)

文章目錄

    • 使用lodashjs庫
    • 手動實現節流(通過判斷之前設定的定時器setTimeout是否存在)

使用lodashjs庫

<!DOCTYPE html>
<html lang="zh-CN"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>頁面標題</title><script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min.js"></script><!-- <link rel="stylesheet" href="styles.css"> --><!-- <script src="script.js" defer></script> --><style>.box {width: 200px;/* 設置盒子的寬度 */height: 200px;/* 設置盒子的高度 */background-color: lightblue;/* 設置盒子的背景顏色 */border: 1px solid #000;/* 可選: 添加邊框 */display: flex;/* 使用 flexbox 布局 */justify-content: center;/* 水平居中內容 */align-items: center;/* 垂直居中內容 */font-size: 24px;/* 設置字體大小 */}</style>
</head><body><div class="box"></div> <!-- 創建一個盒子元素 --><script>const box = document.querySelector('.box');let i = 1;function mouseMove() {box.innerHTML = i++; // 顯示當前計數器值console.log(i);}// 使用 lodash 的 throttle 函數進行節流box.addEventListener('mousemove', _.throttle(mouseMove, 3000)); // 每3000毫秒調用一次</script>
</body></html>

在這里插入圖片描述

手動實現節流(通過判斷之前設定的定時器setTimeout是否存在)

<!DOCTYPE html>
<html lang="zh-CN"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>頁面標題</title><!-- <link rel="stylesheet" href="styles.css"> --><!-- <script src="script.js" defer></script> --><style>.box {width: 200px;/* 設置盒子的寬度 */height: 200px;/* 設置盒子的高度 */background-color: lightblue;/* 設置盒子的背景顏色 */border: 1px solid #000;/* 可選: 添加邊框 */display: flex;/* 使用 flexbox 布局 */justify-content: center;/* 水平居中內容 */align-items: center;/* 垂直居中內容 */font-size: 24px;/* 設置字體大小 */}</style>
</head><body><div class="box"></div> <!-- 創建一個盒子元素 --><script>const box = document.querySelector('.box');let i = 1;function mouseMove() {box.innerHTML = i++; // 顯示當前計數器值console.log(i);}function throttle(fn, delay) {let timer = null;return function () {console.log('判斷定時器是否為空?', timer);if (!timer) {console.log('定時器為空,延遲執行');timer = setTimeout(() => {fn(); // 在里面就是延遲執行,在外面就是立即執行timer = null;}, delay);}console.log('不執行');}}// 使用 lodash 的 throttle 函數進行節流box.addEventListener('mousemove', throttle(mouseMove, 3000)); // 每3000毫秒調用一次</script>
</body></html>

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/900190.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/900190.shtml
英文地址,請注明出處:http://en.pswp.cn/news/900190.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

java流程控制04:if選擇結構

選擇結構 if單選擇結構 if雙選擇結構 if多選擇結構 嵌套的if結構 switch多選擇結構 if單選擇結構 我們很多時候需要去判斷一個東西是否可行&#xff0c;然后我們才去執行&#xff0c;這樣一個過程在程序中用if語句來表示 語法&#xff1a; if(布爾表達式){//如果布爾表達…

在uniapp中,video比普通的標簽層級高解決問題

<view style"position: relative;"><video style"position: absolute;z-index:-1"></video><view style"position: absolute;z-index:999"></view> </view> 上面代碼并沒有解決view的層級比video高的問題&…

基于R語言與MaxEnt的物種分布建模全流程解析:從算法優化到科研制圖實戰

隨著全球氣候變化與生物多樣性保護需求的加劇&#xff0c;物種分布模型&#xff08;Species Distribution Model, SDM&#xff09;已成為生態學、保護生物學研究的核心工具。MaxEnt模型憑借其?對小樣本數據的強適應性?和?環境變量非線性關系的解析能力?&#xff0c;成為SDM…

DPDI版本升級說明

Dispatch PDI v2.0.3版本升級說明 自Dispatch PDI社區版全新版本V2.0.0于2025 年3月25日發布以來&#xff0c;我們始終緊密關注用戶動態&#xff0c;并全力協助用戶線上完成從V0.0.4到V2.0.0的遷移工作。在短短一周內&#xff0c;我們成功助力約90%的用戶完成了遷移。在此期間…

大鉦資本押注儒拉瑪特全球業務,累計交付超2500條自動化生產線儒拉瑪特有望重整雄風,我以為它破產倒閉了,擔心很多非標兄弟們失業

1. 交易概況 時間與主體:大鉦資本于2025年4月1日正式宣布完成對儒拉瑪特自動化技術(蘇州)有限公司及其全球子公司和關聯企業的收購。交易通過大鉦資本旗下美元基金設立的儒拉瑪特(新加坡)公司作為控股主體進行,交易金額未披露。 收購范圍:包括儒拉瑪特亞太、歐洲、北美等…

LabVIEW 調用 Python 函數

此程序是 LabVIEW 調用 Python 函數實現雙精度數相加的典型示例。通過 LabVIEW 搭建交互框架&#xff0c;借助 “Open Python Session” 創建 Python 代碼運行環境&#xff0c;定位 Python 模塊路徑后調用 “Add” 函數&#xff0c;最終實現數據處理并關閉會話。整個流程展現了…

基于SpringBoot的“考研學習分享平臺”的設計與實現(源碼+數據庫+文檔+PPT)

基于SpringBoot的“考研學習分享平臺”的設計與實現&#xff08;源碼數據庫文檔PPT) 開發語言&#xff1a;Java 數據庫&#xff1a;MySQL 技術&#xff1a;SpringBoot 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系統展示 系統總體功能結構圖 局部E-R圖 系統首頁界面 …

恒盾C#混淆加密衛士 - 混淆加密保護C#程序

對于大部分C#開發者來說&#xff0c;寫完代碼點個發布就完事兒了&#xff0c;但你可能不知道——用記事本都能扒開你編譯好的程序&#xff01;像dnSpy這類反編譯工具&#xff0c;分分鐘能把你的EXE/DLL變回原汁原味的源代碼&#xff0c;商業機密赤裸裸曝光不說&#xff0c;競爭…

selectdb修改表副本

如果想修改doris&#xff08;也就是selectdb數據庫&#xff09;表的副本數需要首先確定是否分區表&#xff0c;當前沒有數據字典得知哪個表是分區的&#xff0c;只能先show partitions看結果 首先&#xff0c;副本數不應該大于be節點數 其次&#xff0c;修改期間最好不要跑業務…

【嵌入式-stm32電位器控制以及旋轉編碼器控制LED亮暗】

嵌入式-stm32電位器控制LED亮暗 任務1代碼1Key.cKey.hTimer.cTimer.hPWM.cPWM.hmain.c 實驗現象1任務2代碼2Key.cKey.hmain.c 實驗現象2問題與解決總結 源碼框架取自江協科技&#xff0c;在此基礎上做擴展開發。 任務1 本文主要介紹利用stm32f103C8T6實現電位器控制PWM的占空比…

圖撲可視化點亮智慧城市垃圾分類新未來

圖撲基于 HT 開發的智慧城市廢棄物可視化管理系統&#xff0c;通過智能感知與三維可視化技術&#xff0c;構建全流程數字化監管平臺。系統實現固體廢物從源頭投放到終端處置的全程可視化追蹤&#xff0c;提供智能收運路徑規劃與資源回收管理方案&#xff0c;助力城市環境治理向…

Elasticsearch安全加固指南:啟用登錄認證與SSL加密

在之前文章中我們介紹了Elasticsearch安全與權限控制&#xff0c;本篇文章我們將詳細介紹 啟用登錄認證與SSL加密實踐配置操作 。 1 為什么需要安全加固&#xff1f; Elasticsearch默認不啟用安全功能&#xff0c;會導致以下風險&#xff1a; 未授權訪問&#xff1a;任何人都能…

前端知識點---本地存儲(javascript)

localStorage 是瀏覽器提供的一個 本地存儲 API&#xff0c;可以在用戶的瀏覽器中存儲數據&#xff0c;數據不會隨頁面刷新而丟失。 1. 基本用法 (1) 存儲數據&#xff08;setItem&#xff09; localStorage.setItem("username", "zhangsan");存儲 “use…

神經網絡能不能完全擬合y=x2 ???

先說結論&#xff1a;關鍵看激活函數的選擇 ReLU神經網絡對非線性函數的擬合分析 ReLU神經網絡對非線性函數&#xff08;如 y x 2 y x^2 yx2&#xff09;的擬合只能是逼近&#xff0c;而無法實現數學意義上的完全重合。這一結論源于ReLU的分段線性本質與目標函數的非線性結…

14.流程自動化工具:n8n和家庭自動化工具:node-red

n8n 安裝 docker方式 https://docs.n8n.io/hosting/installation/docker/ #https://hub.docker.com/r/n8nio/n8n docker pull n8nio/n8n:latest docker rm -f n8n; docker run -it \ --network macvlan --hostname n8n \ -e TZ"Asia/Shanghai" \ -e GENERIC_TIME…

哈密爾頓路徑(Hamiltonian Path)及相關算法題目

哈密爾頓路徑要求訪問圖中每個頂點恰好一次&#xff0c;通常用于解決旅行商問題&#xff08;TSP&#xff09;或狀態壓縮DP問題。 哈密爾頓路徑&#xff08;Hamiltonian Path&#xff09;是指在一個圖中經過每個頂點恰好一次的路徑。如果這條路徑的起點和終點相同&#xff08;即…

面試算法高頻02-樹

樹類型對比 數據結構定義節點特點遍歷方式常見操作時間復雜度&#xff08;平均&#xff09;時間復雜度&#xff08;最壞&#xff09;空間復雜度&#xff08;最壞&#xff09;與其他結構關系應用場景樹有根節點&#xff0c;分層級&#xff0c;包含父子、兄弟節點及子樹關系的非…

數論4 組合數

目錄 前言 求法一 代碼 求法二 代碼 求法三 代碼 求法四 代碼 前言 今天要將最后一部分&#xff0c;主要涉及組合數的四種求法。 前置知識 組合數的通項公式&#xff1a; 組合數的遞推公式&#xff1a; 盧卡斯定理&#xff1a; 我們今天需要求的四種求法主要基…

構建自己的私有 Git 服務器:基于 Gitea 的輕量化部署實戰指南

對于個人開發者、小型團隊乃至企業來說&#xff0c;將項目代碼托管在 GitHub、Gitee 等公共平臺雖然方便&#xff0c;但也存在一定的隱私與可控性問題。 搭建一套私有 Git 代碼倉庫系統&#xff0c;可以實現對源碼的完全控制&#xff0c;同時不依賴任何第三方平臺&#xff0c;…

Linux操作系統 4.Linux實用操作

一、各類小技巧&#xff08;快捷鍵&#xff09; 1.CTRL C 強制停止 1.Linux某些程序的運行&#xff0c;如果想要強行停止它&#xff0c;可以使用ctrlc 2.命令輸入錯誤&#xff0c;也可以通過快捷鍵ctrl c,退出當前輸入&#xff0c;重新輸入&#xff0c;或者ctrlc跳過當前這…