DIV的失去焦点(blur)实现
用防抖实现DIV鼠标移出消失 由于div标签本身不支持 onblur 事件,所以对于点击一个按钮弹出的 div ,我们想要当这个 div 失去焦点的时候,让它消失不能使用的 onblur 来实现。 但是可以利用 onmouseout 和事件来实现DIV失去焦点消失的功能。直接使用 onmouseout 来实现移出消失可能会有一个问题: 假设你的按钮的位置和弹出的div的位置不是重合的那么会导致鼠标移动就会马上去触发 onmouseout 事件 ,从而没什么卵用。 利用防抖、 onmouseout 、 onmouseover 组合来实现一个体验很好的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) {