7

Bounce Exchange 找到了一种检测用户是否会离开网站的近乎完美的方法。他们基于跟踪鼠标手势、鼠标速度和浏览器平面的中断来执行此操作。如果他们检测到有人离开,他们会在灯箱上弹出一个弹出窗口。

我可以通过以下方式很好地模仿这一点:

$("body").mouseleave(function() {
    jQuery('#avoid-bounce').show();
});

唯一的问题是这很烦人。就算是抓住了人,离开身体的那一刻也会再次开火。

考虑鼠标速度并只允许事件触发一次的可能性有多大?我对 JavaScript 和 jQuery 还很陌生,但我正在学习。

4

3 回答 3

9

这正是.one()为了:

$("body").one('mouseleave', function() {
    jQuery('#avoid-bounce').show();
});
于 2013-04-27T03:06:08.837 回答
3

您可以在代码中添加标志:

$("body").mouseleave(function() {
    if ( jQuery('#avoid-bounce').data('shown') != true ) {
        jQuery('#avoid-bounce').data('shown', true).show();
    }
});

创建一个标志将确保show()代码不会被第二次调用。

于 2013-04-15T22:05:28.970 回答
2

或者您可以尝试 OuiBounce,反弹交换替代方案:https ://github.com/carlsednaoui/bounce-exchange-alternative

于 2014-02-14T10:56:22.807 回答