【发布时间】:2019-07-03 06:31:47
【问题描述】:
我有一个在页面加载时显示的 DIV。 可以通过按钮或单击窗口中的任意位置(按照常规模式)将其关闭。
我需要这个 DIV 在每个会话中只显示一次。目前,每次在网站上加载新页面时都会显示它。有没有简单的解决办法?
我想根据下面的工作版本继续使用 JQuery 显示/隐藏来执行此操作。非常感谢任何帮助。
HTML
<div id="promoModal" class="promomodal">
<div class="promo-modal-content">
<span class="promo-close">×</span>
CONTENT
</div>
</div>
CSS
.promomodal {
position: fixed;
z-index: 1;
left: 0;
top: 0;
width: 100%;
height: 100%;
overflow: auto;
background-color: rgb(0, 0, 0);
background-color: rgba(0, 0, 0, 0.7);
padding: 10px;
}
.promo-modal-content {
background-color: #071177;
margin: 15% auto;
padding: 10px;
max-width: 500px;
text-align: center;
}
.promo-close {
color: #fff;
float: right;
top: 0;
font-size: 28px;
font-weight: bold;
}
</style>
JS
var modal = document.getElementById("promoModal");
var span = document.getElementsByClassName("promo-close")[0];
jQuery(document).ready(function ($) {
$('.promomodal').show();
span.onclick = function () {
jQuery('.promomodal').hide();
}
window.onclick = function (event) {
if (event.target == modal) {
jQuery('.promomodal').hide();
}
}
});
</script>
【问题讨论】:
-
是否可以将某人定义为“离开”网站为在 x 分钟内未加载页面的人?例如如果他们在 5 分钟内没有访问该网站,他们就离开了?
-
如果 cookie 不存在,显示 div 并创建/存储 cookie。 cookie 不应该有过期日期,因此当用户关闭浏览器时它会自动被删除。这样,div 将在每个会话中仅打开一次,而不是在每个页面上。
-
@TobyMellor 我希望它每次访问只显示在一页上。目前,它每次都会加载到网站的每个页面上。
标签: javascript jquery css cookies