css - 在加载时向文本添加过渡
问题描述
我正在尝试在我的网站上添加过渡到文本,以便在加载页面时,“Hello”的不透明度在第一秒从 0 变为 1,文本“Name”的不透明度从 0 变为 1下一秒。我尝试使用过渡,但它只适用于悬停而不是负载。我尝试了关键帧和动画,但这仅在指定时间起作用,并且页面以默认不透明度 1 加载。要求是: 你好(在第一秒出现并带有过渡) 名称(在下一秒出现并带有过渡) 最初都具有不透明度0。请帮助。
解决方案
如果您可以使用 JS,则可以等到所有内容都加载完毕后再触发动画,并且如果用户未启用 JS,则可以使用回退。
如果你只是在animation
没有 JS 的情况下使用,动画将在你的页面加载之前开始,用户可能看不到动画。
// WAIT UNTIL THE WINDOW IS FULLY LOADED
window.addEventListener('load', (event) => {
// GET THE BODY OBJECT
let body = document.querySelector("body");
// ADD THE CLASS TO THE BODY
body.classList.add('js-loaded')
});
@keyframes opacity {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
/* IF THE USER DOESN'T HAVE JS */
h1 {
opacity: 1;
}
p {
opacity: 1;
}
/* IF THE USER HAS JS */
body.js-loaded h1 {
opacity: 0;
animation: opacity 1s;
animation-fill-mode: forwards;
}
body.js-loaded p {
opacity: 0;
animation: opacity 1s;
animation-delay: 1s;
animation-fill-mode: forwards;
}
<body>
<div>
<h1>
This is your header.
</h1>
<p>
Eleifend nec eget. Id massa quis eu vitae elit. Bibendum interdum semper. Donec libero duis.
</p>
</div>
</body>
推荐阅读
- javascript - 有没有更好的方法将 props 传递给 React 中的组件?
- sql - 包含连接的 Oracle SQL GROUP BY 子句
- elasticsearch - 1000 万个以上的 Elastic 集群的例子?
- akka-stream - Akka.net - 具有并行性、背压和 ActorRef 的流
- python - 将字典与其他字典进行比较,并仅选择其他字典中存在的那些键
- javascript - 如何使用 webpack 将两个或多个函数导出到全局上下文?
- azure - 对 Azure ubuntu 虚拟机的 HTTPS 访问
- node.js - nodejs memorystream下载文件
- alexa - Alexa Spelling Skill - 如何在单词拼写错误时触发回答意图
- bash - 复制文件时将固定子字符串移动到文件名的末尾