当前位置: 首页 > Web前端 > HTML

DIV失去焦点(模糊)实现

时间:2023-04-02 15:52:40 HTML

使用防抖实现DIV鼠标移出消失由于div标签本身不支持onblur事件,所以对于点击按钮时弹出的div,我们要当div标签失去焦点时让它失去焦点使用onblur无法实现消失。但是可以使用onmouseout和事件来实现DIV失去焦点消失的功能。使用onmouseout移出直接消失可能会有一个问题:如果你的button的位置和弹出div的位置不重合,那么onmouseout事件会在鼠标移动的时候立即触发,没有用.使用防抖、onmouseout、onmouseover组合实现体验好的blur事件/***mousemovesoverdivevent*/functionmoveOverEvent(ele,outTimer){letoverTimer=null;返回函数(){clearTimeout(outTimer);//在div还没有消失的情况下,如果div被移入,则清空最后一个事件clearTimeout(overTimer);//防抖overTimer=setTimeout(()=>{ele.style.display="block";},500);}}/***鼠标移出*/functionmoveOutEvent(ele,outTimer){returnfunction(){clearTimeout(outTimer);//防抖outTimer=setTimeout(()=>{//移动出去后,等待500ms,然后消失divele.style.display="none";},500);}然后无意中发现在div中添加tabindex属性就可以实现blur事件,所以上面的代码可能是白写的。(PS感觉上面的体验会更好,减少很多误触)//设置tabindex后,元素默认添加虚线,通过ouline=0去掉(IE设置hidefocus="true")