2013-04-15 26 views
7

Bounce Exchange đã tìm ra một cách gần như hoàn hảo để phát hiện nếu người dùng rời khỏi trang web. Họ làm điều này dựa trên việc theo dõi cử chỉ chuột, vận tốc chuột và phá vỡ mặt phẳng trình duyệt. Nếu họ phát hiện một người nào đó đang rời khỏi, họ sẽ tắt một cửa sổ bật lên trên hộp đèn.Phát hiện nếu người dùng rời khỏi trang web như Bounce Exchange

tôi kém có thể thi đua này, bởi sau:

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

Vấn đề duy nhất là điều này khá khó chịu. Ngay cả khi nó bắt được ai đó, khoảnh khắc họ rời khỏi cơ thể nó lại bùng nổ.

Khả năng có thể ảnh hưởng đến tốc độ chuột và cho phép sự kiện chỉ kích hoạt một lần? Tôi vẫn còn khá mới với JavaScript và jQuery, nhưng tôi đang học.

+0

chỉ cần thêm vào danh sách bounceexchange.com adblock của tôi;) –

Trả lời

3

Bạn có thể thêm một lá cờ để mã của bạn:

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

Tạo một lá cờ sẽ chắc chắn rằng mã show() sẽ không được gọi lần thứ hai.

+0

Vlad, có thể bạn xin vui lòng đặt một ví dụ về fiddle sẽ thực sự hữu ích cho tôi và nhiều người tìm kiếm một cái gì đó như thế này. – Vicky

9

Đây là .one() là chính xác những gì cho:

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

Hoặc bạn có thể thử OuiBounce, việc trao đổi thư bị trả lại thay thế: https://github.com/carlsednaoui/bounce-exchange-alternative

+0

THANK YOU !!!!!!!!!!!!!! Tôi đã googling cho EVER để tìm một thay thế miễn phí. Tôi nên cung cấp cho bạn 100 upvotes. – Tallboy

+0

ouiBounce là một lựa chọn tốt, nhưng tiếc là không hoạt động tốt. Nếu bạn có những thứ nhỏ ở trên cùng, nó sẽ kích hoạt cửa sổ bật lên. Nó nên đi vào xem xét tốc độ của con chuột. –

Các vấn đề liên quan