摘要:用防抖實現(xiàn)鼠標移出消失由于標簽本身不支持事件,所以對于點擊一個按鈕彈出的,我們想要當這個失去焦點的時候,讓它消失不能使用的來實現(xiàn)。但是可以利用和事件來實現(xiàn)失去焦點消失的功能。
用防抖實現(xiàn)DIV鼠標移出消失
??由于div標簽本身不支持onblur事件,所以對于點擊一個按鈕彈出的div,我們想要當這個div失去焦點的時候,讓它消失不能使用的onblur來實現(xiàn)。
??但是可以利用onmouseout和事件來實現(xiàn)DIV失去焦點消失的功能。直接使用onmouseout來實現(xiàn)移出消失可能會有一個問題:假設你的按鈕的位置和彈出的div的位置不是重合的那么會導致鼠標移動就會馬上去觸發(fā)onmouseout事件,從而沒什么卵用。
??利用防抖、onmouseout、onmouseover組合來實現(xiàn)一個體驗很好的blur事件
/** *鼠標移動過div事件 */ function moveOverEvent(ele,outTimer) { let overTimer = null; return function(){ clearTimeout(outTimer); //div沒有消失的情況下,在移動進來div,那么就清除上次移出的事件 clearTimeout(overTimer); //防抖 overTimer = setTimeout(()=>{ ele.style.display = "block"; },500); } }
/** * 鼠標移出 */ function moveOutEvent(ele,outTimer) { return function(){ clearTimeout(outTimer); //防抖 outTimer = setTimeout(()=>{ //移動出去后等500ms,在消失這div ele.style.display = "none"; },500); } }
??然后無意中發(fā)現(xiàn)一個可以通過給div添加tabindex屬性,從而實現(xiàn)blur事件,所以上面的代碼可能是白寫了。(PS 我感覺上面的體驗會好一些,減少了很多誤觸)
//設置了tabindex后,元素默認加虛線,通過ouline=0進行去除(IE設置hidefocus="true")
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://systransis.cn/yun/113710.html
摘要:用防抖實現(xiàn)鼠標移出消失由于標簽本身不支持事件,所以對于點擊一個按鈕彈出的,我們想要當這個失去焦點的時候,讓它消失不能使用的來實現(xiàn)。但是可以利用和事件來實現(xiàn)失去焦點消失的功能。 用防抖實現(xiàn)DIV鼠標移出消失 ??由于div標簽本身不支持onblur事件,所以對于點擊一個按鈕彈出的div,我們想要當這個div失去焦點的時候,讓它消失不能使用的onblur來實現(xiàn)。??但是可以利用onmous...
摘要:用防抖實現(xiàn)鼠標移出消失由于標簽本身不支持事件,所以對于點擊一個按鈕彈出的,我們想要當這個失去焦點的時候,讓它消失不能使用的來實現(xiàn)。但是可以利用和事件來實現(xiàn)失去焦點消失的功能。 用防抖實現(xiàn)DIV鼠標移出消失 ??由于div標簽本身不支持onblur事件,所以對于點擊一個按鈕彈出的div,我們想要當這個div失去焦點的時候,讓它消失不能使用的onblur來實現(xiàn)。??但是可以利用onmous...
摘要:焦點事件一般利用這些事件與方法和屬性配合。此外,支持一個名為的類似事件,也是在鼠標滾動滾輪時除法。 焦點事件 一般利用這些事件與document.hasFocus()方法和document.activeElement屬性配合。主要有: blur:元素失去焦點,不會冒泡; DOMFocusIn:同HTML事件focus,于DOM3遭廢棄,選用focusin; DOMFocusOut:同...
摘要:背景之前做了一個網(wǎng)頁,網(wǎng)頁中的所有輸入框都被設計為獲得鼠標焦點時外邊框不變藍。而且輸入框的邊框設置在了父元素上,所有當輸入框獲得焦點時,看到的應該是父元素上的邊框變藍,而不是里面的的邊框變藍。 背景 之前做了一個網(wǎng)頁,網(wǎng)頁中的所有輸入框都被設計為獲得鼠標焦點時外邊框不變藍。突然某一天,產品覺得這樣用戶體驗不好,不能很明顯地告訴用戶當前鼠標停在哪里,于是要求改為當輸入框獲得鼠標焦點時,外...
摘要:背景之前做了一個網(wǎng)頁,網(wǎng)頁中的所有輸入框都被設計為獲得鼠標焦點時外邊框不變藍。而且輸入框的邊框設置在了父元素上,所有當輸入框獲得焦點時,看到的應該是父元素上的邊框變藍,而不是里面的的邊框變藍。 背景 之前做了一個網(wǎng)頁,網(wǎng)頁中的所有輸入框都被設計為獲得鼠標焦點時外邊框不變藍。突然某一天,產品覺得這樣用戶體驗不好,不能很明顯地告訴用戶當前鼠標停在哪里,于是要求改為當輸入框獲得鼠標焦點時,外...
閱讀 2589·2021-11-25 09:43
閱讀 1867·2021-09-22 15:26
閱讀 3754·2019-08-30 15:56
閱讀 1718·2019-08-30 15:55
閱讀 1904·2019-08-30 15:54
閱讀 820·2019-08-30 15:52
閱讀 3164·2019-08-29 16:23
閱讀 900·2019-08-29 12:43