分享一个原生js+html的简约时尚弹窗,水平居中+垂直居中,且顶部距离可调,手机电脑自适应居中
效果图
<style>
/* 弹窗背景 */
.popup-overlay {
display: none; /* 默认不显示 */
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.5);
z-index: 9999;
}
/* 弹窗内容 */
.popup-content {
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
background: #fff;
padding: 20px;
border-radius: 10px;
box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
width: 300px;
text-align: center;
font-family: Arial, sans-serif;
}
.popup-content h2 {
font-size: 18px;
margin-top: -10px;
color: #333;
text-align: left;
}
.popup-content p {
color: #555;
margin: 10px 0;
text-align: left;
}
.popup-btn {
background-color: #007BFF;
color: white;
padding: 10px 20px;
border: none;
border-radius: 5px;
cursor: pointer;
font-size: 16px;
}
.popup-btn:hover {
background-color: #0056b3;
}
</style>
<!-- 弹窗结构 -->
<div class="popup-overlay" id="popup-overlay">
<div class="popup-content">
<h2>公告</h2>
<!--弹窗内容-->
<p>温馨提示</p>
<button class="popup-btn" id="close-popup-btn">确认</button>
</div>
</div>
<script>
// 预设弹窗间隔时间(秒)
const popupInterval = 10; // 10秒
// 预设弹窗间隔时间(秒)
//86400秒=24小时=1天
// 获取缓存中的上次弹窗时间
let lastPopupTime = localStorage.getItem('lastPopupTime');
const currentTime = Math.floor(Date.now() / 1000); // 当前时间戳(秒)
// 判断是否需要显示弹窗
if (!lastPopupTime || currentTime - lastPopupTime >= popupInterval) {
// 如果是第一次或超过预设的时间间隔,显示弹窗
document.getElementById('popup-overlay').style.display = 'block';
}
// 关闭弹窗的操作
document.getElementById('close-popup-btn').addEventListener('click', function() {
document.getElementById('popup-overlay').style.display = 'none';
// 更新缓存中的上次弹窗时间
localStorage.setItem('lastPopupTime', currentTime);
});
</script>