jQuery焦点控制图层展示延迟隐藏的方法

前端技术 2023/08/09 JavaScript

本文实例讲述了jQuery焦点控制图层展示延迟隐藏的方法。分享给大家供大家参考。具体实现方法如下:

复制代码 代码如下:

<!doctype html>
<html>
<head>
<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\">
</head>
<body>
<b id=\"button\">点我</b>
<div id=\"div\" style=\"background:#faf;outline:none;display:none\">我是内容</div>
<script type=\"text/javascript\" src=\"jquery.js\"></script>
<script>
$(document).ready(function(){
    jQuery.focusShow({butID:\'#button\',divID:\'#div\',mouse:\'over\',time:\'500\'})
})
jQuery.extend({
    focusShow: function(config){
        //ps:焦点控制图层展示,延迟隐藏
        //focusShow({butID:\'按钮ID\',divID:\'容器ID\',mouse:\'over || click\',time:\'时间\'})
        var butID = $(config.butID || false),
            divID = $(config.divID || false),
            mouse = config.mouse || \'click\',
            time = config.time || \'500\',
            timer;
        function re(){$(divID).hide()}
        switch (mouse){
            case \"click\":
                butID.bind({\'click\':function(){divID.attr(\'tabindex\',\'-1\');divID.focus()}});
                divID.bind({
                    \"focus\":function(){clearTimeout(timer);divID.show()},
                    \"blur\":function(){timer = setTimeout(re,time)}
                })
                break
            case \"over\":
                $(butID,divID).each(function(){
                    $(this).bind({
                        \'mouseover\':function(){clearTimeout(timer);divID.show()},
                        \'mouseout\':function(){timer = setTimeout(re,time)}
                    })
                })
                break
            default:
        }
    }
});
</script>
</body>
</html>

希望本文所述对大家的jQuery程序设计有所帮助。

本文地址:https://www.stayed.cn/item/687

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。