2013-04-15 151 views
7

弹跳交换已经找到了一种几乎完美的方式来检测用户是否会离开网站。他们基于跟踪鼠标手势,鼠标速度以及浏览器平面的断开来完成此操作。如果他们发现某人正在离开,他们会在灯箱上点燃一个弹出窗口。检测用户是否会离开网站,如弹跳交换

我可以模仿不好这一点,通过下面的:

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

唯一的问题是,这是相当恼人。即使它抓住了某人,他们离开身体的那一刻也会再次燃起。

将鼠标速度和事件触发一次的可能性有多大?我对JavaScript和jQuery仍然相当陌生,但我正在学习。

+0

刚刚添加bounceexchange.com我Adblock的名单;) –

回答

3

您可以将标志添加到您的代码:

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

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

+0

弗拉德,你能请在小提琴上举个例子对我和更多的人寻找这样的东西真的很有帮助。 – Vicky

9

这正是.one()是:

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

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

+0

谢谢!!!!!!!!!!!!!!我一直在Google上搜索,找到一个免费的替代品。我应该给你100个upvotes。 – Tallboy

+0

ouiBounce是一个很好的替代方案,但不幸的是效果不佳。如果顶部有小东西,它会触发弹出窗口。它应该考虑到鼠标的速度。 –

相关问题