• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    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) {
            return function(){
                clearTimeout(outTimer);         //防抖
                outTimer = setTimeout(()=>{     //移动出去后等500ms,在消失这div
                    ele.style.display = "none";
                },500);
            }
        }
    

    然后无意中发现一个可以通过给div添加tabindex属性,从而实现blur事件,所以上面的代码可能是白写了。(PS 我感觉上面的体验会好一些,减少了很多误触)

    //设置了tabindex后,元素默认加虚线,通过ouline=0进行去除(IE设置hidefocus="true")
    <div tabindex="0" outline=0" hidefocus="true"></div>

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

    上一篇:html form表单input使用disabled后提交不能获取表单值的解决方法
    下一篇:详解HTML onfocus获得焦点和onblur失去焦点事件
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    DIV的失去焦点(blur)实现方法 DIV,的,失去,焦点,blur,实现,