在加载时向文本添加过渡
Adding Transition to text on load
我正在尝试向我网站上的文本添加过渡,以便在加载页面时,“Hello”的不透明度在第一秒内从 0 变为 1,文本“Name”的不透明度从下一秒0变成1。我尝试使用过渡,但它只适用于悬停而不适用于负载。我尝试了关键帧和动画,但它们仅在指定时间有效,并且页面以默认不透明度 1 加载。
要求是这样的:
你好(出现在第一秒有转场)
姓名(下一秒出现转场)
最初两者的不透明度均为 0。
请帮忙。
可以使用前进动画。
.hello,
.name {
opacity: 0;
animation: fadeIn 1s linear forwards;
}
.name {
animation-delay: 1s;
}
@keyframes fadeIn {
to {
opacity: 1;
}
}
<div class="hello">Hello</div>
<div class="name">there</div>
如果您可以使用 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>
我正在尝试向我网站上的文本添加过渡,以便在加载页面时,“Hello”的不透明度在第一秒内从 0 变为 1,文本“Name”的不透明度从下一秒0变成1。我尝试使用过渡,但它只适用于悬停而不适用于负载。我尝试了关键帧和动画,但它们仅在指定时间有效,并且页面以默认不透明度 1 加载。 要求是这样的: 你好(出现在第一秒有转场) 姓名(下一秒出现转场) 最初两者的不透明度均为 0。 请帮忙。
可以使用前进动画。
.hello,
.name {
opacity: 0;
animation: fadeIn 1s linear forwards;
}
.name {
animation-delay: 1s;
}
@keyframes fadeIn {
to {
opacity: 1;
}
}
<div class="hello">Hello</div>
<div class="name">there</div>
如果您可以使用 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>