我创建了一个表单,我希望只有当用户离开网站时才会出现。我为此搜索了一个函数,我能找到的最接近的是mouseleave。
它工作得很好--至少在台式机上是这样(还没检查过移动端),除了有一个问题。我希望弹出窗口只出现一次。现在,每次鼠标走出体外,它都会出现。
完美的解决方案不是使用body,而是检测用户何时进入浏览器的标签/搜索栏。我不知道该放什么,所以body看起来是个不错的起点。
有没有办法将其限制为只工作一次?
$('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>
发布于 2018-11-30 00:28:49
$('window').on('unload',function(e) {
e.preventDefault();
//Do your stuff
});请注意,大多数浏览器会忽略这种做法,因为它对用户来说太具侵入性了
https://stackoverflow.com/questions/53543354
复制相似问题