Bounce Exchange已经找到了一种几乎完美的方式来检测用户是否会离开网站。他们基于跟踪鼠标手势,鼠标速度和浏览器平面的破坏来实现此目的。如果他们发现某人正在离开,他们会在灯箱上弹出一个弹出窗口。
我可以通过以下方式很难效仿:
$("body").mouseleave(function() {
jQuery('#avoid-bounce').show();
});
唯一的问题是这很烦人。即使它捕获了某人,他们离开身体的那一刻也会再次发射。
考虑鼠标速度并允许事件仅触发一次是多么可能?我仍然是JavaScript和jQuery的新手,但我正在学习。
答案 0 :(得分:9)
这正是.one()
的用途:
$("body").one('mouseleave', function() {
jQuery('#avoid-bounce').show();
});
答案 1 :(得分:3)
您可以在代码中添加标记:
$("body").mouseleave(function() {
if ( jQuery('#avoid-bounce').data('shown') != true ) {
jQuery('#avoid-bounce').data('shown', true).show();
}
});
创建标志将确保第二次不会调用show()
代码。
答案 2 :(得分:2)
或者您可以尝试OuiBounce,即反弹交换选项:https://github.com/carlsednaoui/bounce-exchange-alternative