Mouseleave или другая функция? - PullRequest
0 голосов
/ 29 ноября 2018

Я создал форму, которую хочу отображать только в том случае, если пользователь уходит с сайта.Я искал, чтобы найти функцию для этого, и ближайший, который я мог найти, был mouseleave.

. Он работает хорошо - по крайней мере, на рабочем столе (еще не проверил мобильный), за исключением одной проблемы.Я хочу, чтобы всплывающее окно появлялось только один раз.Прямо сейчас оно появляется каждый раз, когда мышь выходит за пределы тела.

Идеальное решение не будет использовать тело, вместо этого оно будет определять, когда пользователь переходит на вкладки браузера / панель поиска в браузере.Я не был уверен, что положить, поэтому тело выглядело как достойная отправная точка.

Есть ли способ ограничить это работой один раз?

$('body').mouseleave(function() {
		$('#specialPop').fadeIn(350);
		$('body').css('overflow', 'hidden');
});
$('[data-popup-close]').on('click', function(e)  {
  var targeted_popup_class = jQuery(this).attr('data-popup-close');
  $('[data-popup="' + targeted_popup_class + '"]').fadeOut(350);
  $('body').css('overflow', 'auto');
  e.preventDefault();
});
#specialPop {
	width: 100%;
	height: 100%;
	background: rgba(0,0,0,0.8);
	color: #FFF;
	position: fixed;
	z-index: 999999;
	margin: 0;
	padding: 0;
	top: 0;
	right: 0;
	bottom: 0;
	display: none;
}
.popSpecialClose {
	position: absolute;
	right: 40px;
	top: 20px;
	width: 33px;
	height: auto;
	z-index: 99999;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="specialPop" data-popup="popSpecial">
	<a class="popSpecialClose" data-popup-close="popSpecial" href="#">
		Close
	</a>
</div>  

1 Ответ

0 голосов
/ 29 ноября 2018
  $('window').on('unload',function(e) {
  e.preventDefault();
  //Do your stuff
  });

Обратите внимание, что большая часть браузера игнорирует эту практику, потому что она слишком навязчива для пользователя

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...