DIV的失去焦點(blur)實現(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") <div tabindex="0" outline=0" hidefocus="true"></div>
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持我們。
您可能感興趣的文章


閱讀排行
本欄相關
- 04-02表格樣式css樣式,css樣式表單
- 04-02好看的字體樣式css,好看的字體樣式圖
- 04-02分頁樣式css,分頁樣式jq
- 04-02分頁樣式css,分頁樣式欄里用來定義首
- 04-02css樣式的引入,css樣式怎么引入
- 04-02css滾動條樣式,css滾動條的樣式
- 04-02css樣式引入方式有幾種,網(wǎng)頁引入css樣
- 04-02html中加入css樣式的簡單介紹
- 04-02vue中的css樣式布局,vue添加css樣式
- 04-02內嵌樣式css,內嵌樣式表,內部樣式表
隨機閱讀
- 01-10C語言打印楊輝三角示例匯總
- 01-10bat批處理徹底隱藏文件的方法(使用
- 01-10C++實現(xiàn)將數(shù)組中的值反轉
- 01-10C++ 類訪問控制的條件總結
- 01-11常用的HTML富文本編譯器UEditor、CKEdi
- 08-05DEDECMS點擊主欄目默認顯示第一個子欄
- 08-05織夢dedecms首頁調用縮略圖為背景
- 08-05dedecms織夢模板全站調用收藏數(shù)的方法
- 01-10vue實現(xiàn)分頁加載效果
- 08-05dedecms織夢模板編輯文檔的同時自動更


