當我們為某元素綁定mousemove事件或者scroll后,一旦鼠標移動或滾動條滾動就會觸發大量的事件,就像這樣。 移動鼠標橫穿過紅色框。 將滾動條從頂部滾動到底部。 如果是實現拖動效果,當然我們需要時時捕獲事件的位置,這種效果是必須的,但如果是其它情況呢
當我們為某元素綁定mousemove事件或者scroll后,一旦鼠標移動或滾動條滾動就會觸發大量的事件,就像這樣。
移動鼠標橫穿過紅色框。
將滾動條從頂部滾動到底部。
如果是實現拖動效果,當然我們需要時時捕獲事件的位置,這種效果是必須的,但如果是其它情況呢?我們只是希望在用戶操作大概結束后來調用事件處理函數,顯然這種情況
是不符合得。
那怎么辦呢?這里可使用一個定時器來解決這個問題(直接上代碼)。
上面的是最開始的情況,為div綁定scroll事件,在事件處理程序中未做任何處理。
下面的則是使用了定時器,在每次事件處理程序調用時,timer&&clearTimeout(timer)都會將上次的事件操作清除,然后設置新的定時器。當兩個事件間隔大于50毫秒時,因為沒有清楚,所以事件才會發生(時間間隔根據自己的需要設置)。改進后的結果如下:
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com