
本文介绍如何使用 jquery 实现页面加载完成后的数字倒计时动画预加载器,并配合向上滑出(slideup)过渡效果,替代传统静态遮罩,提升用户体验与视觉专业度。
本文介绍如何使用 jquery 实现页面加载完成后的数字倒计时动画预加载器,并配合向上滑出(slideup)过渡效果,替代传统静态遮罩,提升用户体验与视觉专业度。
在现代前端开发中,一个兼具功能性和表现力的加载预处理器(Preloader)不仅能缓解用户等待焦虑,还能强化品牌调性。本文将手把手带你实现一个「3秒倒计时 + 数字动画 + 平滑退出」的预加载器,完全基于原生 jQuery(无需额外插件),兼容主流浏览器,且代码简洁、可维护性强。
✅ 核心逻辑说明
整个流程分为三个阶段:
- 等待页面资源加载完成 → 监听 $(window).on('load')(确保 DOM + 图片/脚本等全部就绪);
- 启动倒计时动画 → 使用 setInterval 每秒触发一次,动态更新 <span> 中的数字并添加淡入/淡出过渡;
- 优雅收尾 → 计数归零后,对预加载容器执行 slideUp() 动画,并移除计数元素。
? HTML 结构(精简可靠)
<!-- 预加载遮罩层(居中显示) -->
<div id="preloader" style="
position: fixed;
top: 0; left: 0;
width: 100%; height: 100%;
background: #fff;
display: flex;
justify-content: center;
align-items: center;
z-index: 9999;
font-family: 'Segoe UI', sans-serif;
">
<span id="spnNumber" style="
font-size: 4rem;
font-weight: bold;
color: #2c3e50;
text-shadow: 0 2px 4px rgba(0,0,0,0.1);
">3</span>
</div>? 提示:建议将 #preloader 的样式内联或置于 <style> 中,避免 CSS 加载延迟导致闪现空白。
⚙️ jQuery 动画脚本(含防抖与清理)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$(window).on('load', function() {
let count = 3;
const $counter = $('#spnNumber');
const $preloader = $('#preloader');
function updateCounter() {
if (count > 0) {
$counter.fadeOut('fast', function() {
$(this).text(count).fadeIn('fast');
count--;
});
} else {
// 倒计时结束:滑出遮罩 + 清理定时器
$preloader.slideUp(800, function() {
$(this).remove(); // 彻底移除 DOM 节点,释放内存
});
clearInterval(counterInterval);
}
}
const counterInterval = setInterval(updateCounter, 1000);
});
</script>⚠️ 注意事项与最佳实践
- 务必引入 jQuery:本方案依赖 jQuery 3.3.1+(.fadeOut()/.fadeIn()/.slideUp() 等方法需其支持);
- 避免重复触发:$(window).on('load') 已天然保证只执行一次,无需额外节流;
- 性能优化:clearInterval() 在倒计时归零后立即调用,防止内存泄漏;
-
可扩展性建议:
- 如需自定义起始数值,只需修改 let count = X;
- 若希望支持「正向计数」(如 0→100%),可改用 count++ 并绑定到 .text(Math.round(percent));
- 进阶用户可结合 GSAP 或 CSS @keyframes 实现更细腻的数字翻转(flip)动效。
✅ 总结
该预加载器以极简代码实现了专业级交互体验:数字变化具备视觉节奏感,退出动画自然流畅,且不依赖外部库。它既适合作为个人作品集的点睛之笔,也可快速集成至企业官网首屏优化流程中——关键在于「克制的设计」与「精准的时机控制」。动手试试吧,三秒之后,你的页面将以自信的姿态呈现于用户眼前。










