
本教程详细介绍了如何使用HTML、CSS和J*aScript创建并控制页面加载动画。通过定义加载层、应用CSS动画效果,并结合J*aScript的`window.onload`事件和`setTimeout`函数,实现加载动画在页面内容完全加载后自动隐藏,从而提升用户体验并平滑过渡到主内容。
在现代网页应用中,加载动画(Loading Animation)是提升用户体验的重要组成部分。当页面内容,特别是图片、视频或大量数据需要时间加载时,一个友好的加载动画可以有效缓解用户的等待焦虑,并告知用户页面正在积极响应。本文将深入探讨如何结合HTML结构、CSS样式与动画以及J*aScript逻辑,实现一个在页面内容加载完毕后自动隐藏的加载动画。
首先,我们需要一个HTML元素来承载加载动画。通常,这个元素会覆盖整个屏幕,确保在页面内容加载完成前,用户只能看到加载动画。
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>加载动画示例</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="loading">
<div class="loading-img">
<span class="loading-img-img">
@@##@@
</span>
<span class="loading-text-words">G</span>
<span class="loading-text-words">R</span>
<span class="loading-text-words">A</span>
<span class="loading-text-words">V</span>
<span class="loading-text-words">G</span>
<span class="loading-text-words">I</span>
<span class="loading-text-words">F</span>
<span class="loading-text-words">T</span>
</div>
</div>
<!-- 页面主要内容,将在加载动画结束后显示 -->
<div class="main-content" style="display: none;">
<h1>欢迎来到主页面!</h1>
<p>这是页面加载完成后显示的内容。</p>
@@##@@
</div>
<script src="script.js"></script>
</body>
</html>在这个结构中:
CSS是实现加载动画视觉效果的关键。我们将使用position: fixed来确保加载层覆盖整个屏幕,并利用@keyframes定义动画。
@import url(https://fonts.googleapis.com/css?family=Quattrocento+Sans);
body {
margin: 0;
font-family: "Quattrocento Sans", sans-serif;
overflow: hidden; /* 初始隐藏滚动条,防止加载时内容闪现 */
}
.loading {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: #fff; /* 加载背景色 */
z-index: 9999; /* 确保加载层在所有内容之上 */
display: flex; /* 使用Flexbox居中内容 */
justify-content: center;
align-items: center;
transition: opacity 0.5s ease-out; /* 添加淡出过渡效果 */
}
.loading-img {
text-align: center;
/* 移除绝对定位,让Flexbox处理居中 */
}
.loading-img-img {
display: inline-block; /* 使图片能与文字对齐 */
vertical-align: middle; /* 垂直对齐 */
margin-right: 10px; /* 图片与文字间距 */
}
.loading-img span {
display: inline-block;
margin: 0 5px;
font-size: 30px;
vertical-align: middle; /* 垂直对齐 */
filter: blur(0px); /* 初始模糊度 */
/* 应用动画,使用不同的延迟创建交错效果 */
animation: blur-img 1.5s infinite linear alternate;
}
/* 为每个文字span应用不同的动画延迟 */
.loading-img span:nth-child(2) { animation-delay: 0.2s; }
.loading-img span:nth-child(3) { animation-delay: 0.4s; }
.loading-img span:nth-child(4) { animation-delay: 0.6s; }
.loading-img span:nth-child(5) { animation-delay: 0.8s; }
.loading-img span:nth-child(6) { animation-delay: 1s; }
.loading-img span:nth-child(7) { animation-delay: 1.2s; }
.loading-im
g span:nth-child(8) { animation-delay: 1.4s; }
.loading-img span:nth-child(9) { animation-delay: 1.6s; }
.loading-img span:nth-child(10) { animation-delay: 1.8s; }
/* 定义模糊动画 */
@keyframes blur-img {
0% { filter: blur(0px); }
100% { filter: blur(4px); }
}
/* 主内容样式,初始隐藏 */
.main-content {
padding: 20px;
text-align: center;
}关键CSS点:
J*aScript是实现加载动画自动隐藏的核心。我们将利用window.onload事件来检测整个页面(包括所有图片、样式表、脚本等)是否已完全加载,然后通过setTimeout函数提供一个短暂的延迟,以确保动画有足够的时间播放,最后隐藏加载层并显示主内容。
灵迅企业网站系统1.0
主要功能:基本设置:站点常规属性设置。导航管理:添加/删除导航菜单,隐藏与显示。单页管理:增加修改单页,通过强大的编辑器可插入动画图片视频等内容。新闻管理:新闻分类管理,增加/删除/修改新闻。产品管理:产品二级分类,产品略缩图,产品推荐,增/删/改产品。订单管理:前台对相应的产品下订单,后台查看与处理订单信息。下载管理:下载分类管理,可做软件下载,文件下载等功能。幻灯管理:幻灯添加、幻灯修改等。招
0
查看详情
window.onload = function() {
// 获取加载动画元素和主内容元素
const loadingElement = document.querySelector(".loading");
const mainContentElement = document.querySelector(".main-content");
// 设置一个延迟,确保加载动画有足够时间播放
// 即使页面内容加载很快,也可以保证动画的完整展示
setTimeout(function() {
// 1. 先设置透明度为0,触发CSS的淡出过渡
loadingElement.style.opacity = '0';
// 2. 在过渡完成后(或稍作延迟),再将display设置为none
// 这样可以避免在过渡期间元素依然占据空间
loadingElement.addEventListener('transitionend', function() {
loadingElement.style.display = 'none';
// 显示主内容
mainContentElement.style.display = 'block';
// 恢复body的滚动条
document.body.style.overflow = 'auto';
}, { once: true }); // 确保事件监听器只执行一次
// 如果不希望等待CSS过渡完成,也可以直接在这里设置display: 'none';
// loadingElement.style.display = 'none';
// mainContentElement.style.display = 'block';
// document.body.style.overflow = 'auto';
}, 2000); // 这里的2000毫秒(2秒)是动画播放的最小持续时间
};J*aScript逻辑详解:
window.onload vs DOMContentLoaded:
setTimeout 的作用:
平滑过渡:
性能考虑:
可访问性:
通过HTML构建加载层、CSS赋予视觉效果与动画、以及J*aScript控制显示与隐藏,我们可以实现一个功能完善且用户友好的页面加载动画。这种方法不仅能有效管理用户等待时间,还能通过平滑的过渡效果提升整体的网页体验。掌握这些技术,将使您的网页应用在用户交互方面更具专业性和吸引力。


以上就是前端页面加载动画的实现与自动隐藏的详细内容,更多请关注其它相关文章!
相关文章:
2026年发布! 美少女养成动作RPG《神剑少女战记》发布实机演示
智慧团建扫码登录入口 智慧团建扫码登录入口官网版
TikTok国际版网页端快速入口 TikTok全球版短视频浏览教程
在VS Code中配置和运行Dart程序的完整步骤
Yandex搜索引擎官方地址 俄罗斯网络世界的主要入口
Yandex搜索引擎官网入口_俄罗斯Yandex免登录一键直达
qq游戏手机版下载安装_qq游戏移动端入口
Composer的 COMPOSER_PROCESS_TIMEOUT 配置项有什么用_解决因执行时间过长而失败的Composer脚本
C++的std::forward_list怎么用_C++ STL中单向链表容器的特点与应用
修复二维数组索引越界异常:一维循环到二维坐标的正确映射
Go语言中Map值调用指针接收器方法的限制与应对
处理Kafka消费者会话超时:深入理解消息处理语义与幂等性
Mac怎么锁定备忘录_Mac备忘录加密设置教程
Animex动漫社网入口地址 Animex动漫社网正版在线入口
J*aScript生成器_j*ascript异步迭代
Tailwind CSS line-clamp 布局问题解析与修复指南
Lar*el头像管理:图片缩放与旧文件删除的最佳实践
163邮箱注册官网 免费申请163个人邮箱
解决J*aScript中重复选择项的确认对话框显示问题
html网页设计源代码怎么运行_运行html网页设计源代码步骤【指南】
Golang如何使用new_Go new分配内存机制讲解
poki免费入口快捷访问 poki人气小游戏直接玩站点
高德地图家和公司地址在哪设置 高德地图通勤路线设置方法【超详细】
汽水音乐在线解析 汽水音乐在线解析入口
俄罗斯搜索引擎Yandex指南 附2025年免登录官网入口
Django模型中自动计算可用余额的实现方法
Pygame教程:解决用户输入与游戏状态更新不同步问题
在Go开发中优雅管理ListenAndServe进程:GoSublime集成方案
虚幻5科幻题材ARPG大作遭取消!本是《奇异人生》厂商新作
J*a实现学校排课程序_面向对象结构化项目示例
怎么在html里运行vbs脚本_html中运行vbs脚本方法【教程】
c++如何实现一个简单的软件渲染器_c++从零开始的3D图形学
J*aScript数组对象转换:按指定键分组与值收集
GemBox Document HTML转PDF垂直文本渲染问题及解决方案
中兴BladeV30怎样用测距估书架层高_iPhone中兴BladeV30测距估书架层高【家装参考】
在J*a中如何使用BigDecimal进行高精度计算_BigDecimal类应用指南
html5 app怎么运行环境_配html5 app运行环境【教程】
MAC的“快捷指令”怎么同步到iPhone_MAC利用iCloud同步所有设备的自动化指令
PHP教程:将数据库查询结果动态展示到HTML Textarea的最佳实践
CSS实现侧边栏导航项全宽圆角悬停背景效果
树莓派传感器触发:通过Twilio API发送WhatsApp消息教程
PHP中高效并行检查多链接状态的教程
《主播少女的秘密账号迷宫》首支宣传片
新手怎么开始学化妆 零基础化妆入门教程
抖音创作助手登录入口_抖音创作辅助工具官网直达
J*aScript中如何高效提取对象指定属性
CSS布局:解决全屏元素100%尺寸与外边距导致的页面溢出问题
Golang如何使用buffered channel提高性能_Golang buffered channel优化技巧
漫蛙漫画官方首页 漫蛙2漫画在线阅读入口
荣耀Play7T运行卡顿解决_荣耀Play7T性能优化