新闻中心
实现页面加载时播放启动画面,关闭标签页后重置

本文介绍如何使用 J*aScript 实现一个在页面首次加载时播放启动画面,并在用户关闭标签页后重置的功能。我们将探讨如何利用 `sessionStorage` API 来存储会话状态,从而控制启动画面的显示逻辑,确保每次用户打开新标签页时都能看到启动画面。
使用 sessionStorage 控制启动画面显示
在 Web 开发中,启动画面(Splash Screen)常用于在页面加载时提供视觉反馈,提升用户体验。通常我们希望启动画面只在用户首次访问页面时显示,避免重复出现。然而,当用户关闭标签页并重新打开时,我们可能希望启动画面再次显示。要实现这种效果,可以结合使用 sessionStorage API 和 J*aScript。
sessionStorage 与 localStorage 类似,都用于在浏览器中存储数据,但 sessionStorage 存储的数据只在当前会话(即浏览器标签页或窗口)有效。当用户关闭标签页或窗口时,sessionStorage 中的数据会被自动清除。这使得 sessionStorage 非常适合存储与当前会话相关的状态信息,例如启动画面是否已经播放过。
代码实现
以下是一个示例代码,演示如何使用 sessionStorage 来控制启动画面的显示:
HTML:
Mureka
Mureka是昆仑万维最新推出的一款AI音乐创作工具,输入歌词即可生成完整专属歌曲。
1091
查看详情
<div class="splash">
<h1 class="splash-content" id="content1">Sub</h1>
<h1 class="splash-content" id="content2">Sub</h1>
<h1 class="splash-content" id="content3">Sub</h1>
</div>CSS:
.splash {
background: black;
z-index: 2;
text-align: center;
justify-content: center;
align-items: center;
width: 100%;
height: 100vh;
transition: 4s;
}
.splash-content {
color: white;
transform: translateY(11em);
}
.splash.display-none{
opacity: 0;
z-index: 0;
transform: translateY(-100%);
transition: 1.5s;
}
.splash.post_animated {
display: none;
}
#content1 {
animation: come-in-first 2s ease-in;
}
#content2 {
animation: come-in-second 3s ease-in;
}
#content3 {
transform: translate(4px, 11em);
animation: come-in-third 4s ease-in;
}
@keyframes come-in-first {
0% {
transform: translateY(13em);
opacity: 0;
}
}
@keyframes come-in-second {
0%, 50% {
transform: translateY(11.5em);
opacity: 0;
}
}
@keyframes come-in-third {
0%, 60% {
transform: translate(4px, 11.5em);
opacity: 0;
}
}J*aScript:
const splash = document.querySelector('.splash');
document.addEventListener('DOMContentLoaded', (e) => {
setTimeout(() => {
splash.classList.add('display-none');
}, 6000);
})
var firstContainer = document.querySelector(".splash");
var result = sessionStorage.getItem('hasRan');
if (!result) {
sessionStorage.setItem('hasRan', true);
} else {
firstContainer.classList.remove("animated");
firstContainer.classList.add("post_animated");
}代码解释
-
HTML 结构: 定义了一个 d
iv 元素,类名为 splash,用于包含启动画面的内容。 - CSS 样式: 设置了 splash 元素的样式,包括背景颜色、层叠顺序、居中对齐等。display-none 类用于隐藏启动画面,post_animated类也是隐藏,但是使用了不同的逻辑。还定义了几个动画,使启动画面更加生动。
-
J*aScript 代码:
- 首先,通过 document.querySelector('.splash') 获取 splash 元素。
- 使用 sessionStorage.getItem('hasRan') 检查 sessionStorage 中是否已存在名为 hasRan 的数据项。
- 如果 hasRan 不存在(即用户首次访问页面),则使用 sessionStorage.setItem('hasRan', true) 创建该数据项,并将值设置为 true。这意味着启动画面应该显示。
- 如果 hasRan 已经存在(即用户不是首次访问页面),则移除 animated 类,并添加 post_animated 类。 这会隐藏启动画面。
- 使用 setTimeout 函数,在 6 秒后给 splash 元素添加 display-none 类,从而隐藏启动画面。
注意事项
- sessionStorage 存储的数据是字符串类型。如果需要存储其他类型的数据,需要进行类型转换。
- sessionStorage 的容量有限,通常为 5MB 左右。因此,不适合存储大量数据。
- sessionStorage 只能在同源的页面之间共享数据。
总结
通过使用 sessionStorage API,我们可以轻松地控制启动画面在页面加载时的显示逻辑,确保每次用户打开新标签页时都能看到启动画面,从而提升用户体验。这种方法简单有效,适用于各种 Web 应用场景。
以上就是实现页面加载时播放启动画面,关闭标签页后重置的详细内容,更多请关注其它相关文章!
# 只在
# 珠海seo优化平台
# 广东法律网站建设
# 濮阳seo公司甄选20火星
# 嘉定区运动营销推广部
# 网络营销地区推广方案
# 海南seo入门推荐知乎
# 企业网站推广优惠方案模板
# 科研团队网站建设
# 营销推广方案设计例子
# 联投优化人员招聘网站官网
# 是一个
# 拖拽
# 开新
# 如何使用
# css
# 自定义
# 都能
# 复选框
# 加载
# 首次
# sessionstorage
# ai
# session
# ssl
# 浏览器
# html
# java
# javascript
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
漫蛙manwa官网登录界面_漫蛙漫画网页版主站入口
精准捕获:如何在页面中监听除特定元素外的所有点击事件
zookeeper 都有哪些功能?
天猫双十一预售商品怎么退款_天猫双十一预售退款操作指南
vivo浏览器自带的下载器速度慢怎么办 vivo浏览器提升文件下载速度的技巧
如何使用Node.js csv 包按条件移除含空字段的CSV记录
Win11怎么设置鼠标主按键_Win11鼠标左右键功能互换
《刺客信条:影》PS5 Pro和Switch 2画面对比
Django AJAX 文件上传教程:解决图片无法保存到模型的常见问题
windows10怎么查看硬盘序列号_windows10硬盘id查询命令
Python大型XML文件高效流式解析教程
Bing引擎入口最新2025 Bing搜索免费官方登录
QQ邮箱官方网页版登录 QQ邮箱个人邮箱快速访问
浏览器打开即用 美图秀秀网页版入口
C++的std::mdspan是什么_C++23中用于操作多维数组的非拥有视图
顺丰快递查询系统 官方正版查询入口
J*aScript井字棋(Tic-Tac-Toe)核心交互逻辑实现教程
mc.js免安装版 mc.js一键畅玩入口
漫蛙2漫画入口 漫蛙正版网页漫画直达网址
FullCalendar 自定义按钮样式定制指南
微信网页版扫码登录入口 微信网页版二维码登录入口
抖音隐秘迷城小游戏入口_ 抖音冒险解谜小游戏秒玩
优化 Jest 模拟:强制未实现函数抛出错误以提升测试效率
在J*a里如何理解依赖关系的方向_依赖方向在模块结构中的作用
QQ邮箱网页版入口页面 QQ邮箱在线登录入口官网
J*aScript 字符串标签转换:使用正则表达式高效替换
高德地图家和公司地址在哪设置 高德地图通勤路线设置方法【超详细】
j*a toString()的覆盖
Windows电脑怎么截图最方便_系统自带截图工具的5种神仙用法【技巧】
如何将HTML表格多行数据保存到Google Sheet
Python:递归比较文件夹内容并找出特定类型文件的差异
Steam官网入口直达 Steam注册及登录步骤
动漫共和国防屏蔽稳定域名-动漫共和国官方正版直达通道
Win11怎么设置开机NumLock亮 Win11修改注册表InitialKeyboardIndicators值
c++中的std::launder有什么实际用途_c++对象生命周期与指针优化
J*a递归快速排序中静态变量导致数据累积问题的解决方案
Discord Slash 命令响应超时问题的异步解决方案
12306几点到几点不能订票? | 官方最新系统维护时间全解析
Composer如何处理Git子模块(submodule)依赖_Composer与Git Submodule的对比与选择
《铁拳8》黑皮辣妹新实机:元气满满的18岁少女!
python3时间如何用calendar输出?
html网页设计源代码怎么运行_运行html网页设计源代码步骤【指南】
CKEditor 5 自定义构建在React应用中渲染失败的调试与解决
Golang如何使用new_Go new分配内存机制讲解
Composer的 "check-platform-reqs" 命令有什么用_在部署前检查生产环境是否满足Composer依赖需求
解决Flask中Quill编辑器内容提交失败及TypeError的指南
谷歌google账号怎么注册账号 谷歌账号注册官方流程
React Hooks最佳实践:动态组件状态管理的组件化方案
Node.js 中使用 node-cron 实现定时 API 数据抓取与处理
《马克思佩恩3》早期版本曝光 UI设计曾多次调整!


2025-10-25
浏览次数:次
返回列表
iv 元素,类名为 splash,用于包含启动画面的内容。