在 CSS 中为页面加载创建淡入效果

Subodh Poudel 2023年10月12日
  1. 在 CSS 中使用 animation 属性和 @keyframes 规则创建淡入效果
  2. 在 CSS 中使用 animate() JQuery 方法创建淡入效果
在 CSS 中为页面加载创建淡入效果

淡入效果将元素的不透明度从隐藏增加到可见。选定元素的不透明度将在给定时间内发生变化。

本教程将介绍在 CSS 中加载页面时实现这种效果的方法。

在 CSS 中使用 animation 属性和 @keyframes 规则创建淡入效果

我们对淡入效果有了一些了解。

此方法将使用 animation 属性和 @keyframes 规则在页面加载时实现淡入效果。首先,让我们了解 animation 属性是如何工作的。

当一个元素的样式及时从一种样式更改为另一种样式时,我们可以判断它是一个动画。animation 属性是 animation-nameanimation-durationanimation-timing-functionanimation-delayanimation-iteration-countanimation-方向按顺序。

我们可以使用 animation 属性仅指定 animation-nameanimation-duration 属性来创建淡入效果。 @keyframes 规则用于逐渐改变所选元素的 CSS 样式。

结果,将创建动画效果。我们使用 @keyframes 规则中的 animation-name 属性值来选择动画以应用渐变样式。

@keyframes 规则中,我们使用 tofrom 等选择器来应用样式。tofrom 选择器等价于 0%100%

使用 to 选择器应用的样式将逐渐更改为使用 from 选择器应用的样式。更改将与 animation-duration 属性指定的时间一起发生。

要创建淡入动画,我们可以使用 @keyframes 规则中的选择器将页面的不透明度从 0 更改为 1@keyframe 规则的语法如下所示。

@keyframes animation-name {
    keyframes-selector {
        css-styles;
    }
}

例如,在 HTML 的 p 标签内写一些文本。

在 CSS 中,选择 html 标签并将 animation 属性设置为 fadein 2s。这里,fadeinanimation-name2sanimation-duration

接下来,使用@keyframes 关键字选择动画名称 fadein,如上面的语法所示。将 0%写为第一个关键帧选择器并将 opacity 属性设置为 0

同样,将另外两个关键帧选择器写为 50%100%,并将 opacity 分别设置为 0.51

在这里,当页面加载时,由于不透明度设置为 0,文本一开始会不太明显。逐渐地,不透明度会改变,文本将在两秒钟内显示出来。

因此,我们可以使用 animation 属性来创建淡入效果。

示例代码:

<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
body {
    animation: fadein 4s; 
}
@keyframes fadein {
    0% {
        opacity:0;
    }
    50%{
        opacity:0.5;
    }
    100% {
        opacity:1;
    }
}

在 CSS 中使用 animate() JQuery 方法创建淡入效果

这个方法将讨论另一种使用 jQuery 在 CSS 中创建淡入效果的方法。

我们可以使用 jQuery 中的 animate() 方法来实现我们的目标。animate() 执行所选元素样式的渐变以创建动画效果。

我们可以指定 CSS 样式并提供动画的速度。animate() 方法的语法如下所示。

(selector).animate({css - styles}, duration, easing, callback)

当我们使用 animate() 方法时,所选元素的默认样式将被方法中指定的样式覆盖。

出于演示目的,我们将在 HTML 中使用与第一种方法相同的文本。首先,选择 CSS 的 body 标签并将 opacity 属性设置为 0

接下来,在 jQuery 中选择 body 标签并调用 animate() 方法。在方法内部,将样式中的 opacity 设置为 1,并将 duration 设置为 2000

在下面的示例中,2000 等于两秒,即动画的持续时间。最初,当页面加载时,其不透明度为 0,并在两秒内变为 1

这样,使用 jQuery 就实现了淡入效果。

示例代码:

body {
    opacity: 0;
}
$('body').animate({'opacity': '1'}, 2000);
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
作者: Subodh Poudel
Subodh Poudel avatar Subodh Poudel avatar

Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.

LinkedIn

相关文章 - CSS Transition