CSS3实现彩色变形爱心动画【附源码】

        随着前端技术的发展,CSS3 为我们提供了丰富的动画效果,使得网页设计更加生动和有趣。今天,我们将探讨如何使用 CSS3 实现一个彩色变形爱心加载动画特效。这种动画不仅美观,而且可以应用于各种网页元素,比如加载指示器或者页面装饰。

准备工作

        在开始之前,请确保你的浏览器支持 CSS3 动画。现代的浏览器,如 Chrome、Firefox、Safari 和 Edge,都对 CSS3 动画有很好的支持。

HTML 结构

        首先,我们需要一个简单的 HTML 结构来承载我们的动画。

        

  • <!DOCTYPE html>: 声明文档类型为HTML5。
  • <html lang="en">: HTML文档的根元素,指定语言为英语。
  • <head>: 包含了页面的元数据和引用的外部资源。
    • <meta charset="UTF-8">: 指定字符集为UTF-8,支持各种语言的字符。
    • <meta name="viewport" content="width=device-width, initial-scale=1.0">: 设置移动设备的视口,确保页面在各种设备上显示正确。
    • <meta http-equiv="X-UA-Compatible" content="ie=edge">: 设置IE浏览器使用最新的渲染模式。
    • <title>css3彩色变形爱心加载动画特效</title>: 页面标题。

以下是一个基本的 HTML 代码示例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>CSS3 彩色变形爱心加载动画特效</title>
</head>
<body>
    <div id="he">
        <ul>
            <li></li>
            <!-- 重复li元素以创建更多的爱心 -->
        </ul>
    </div>
</body>
</html>

CSS 样式

接下来是 CSS 部分,我们将使用 CSS3 的 @keyframes 规则来定义动画,并使用 animation 属性来应用这些动画。

* {
    padding: 0;
    margin: 0;
    list-style: none;
}
​
#he {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100vh;
    background-color: #232e6d;
}
​
ul {
    height: 200px;
}
​
li {
    float: left;
    width: 20px;
    height: 20px;
    border-radius: 20px;
    margin-right: 10px;
}
​
/* 定义动画 */
@keyframes love1 {
    30%, 50% {
        height: 60px;
        transform: translateY(-30px);
    }
    75%, 100% {
        height: 20px;
        transform: translateY(0);
    }
}
​
/* 根据需要,可以定义更多的动画,这里以love1为例 */

 

动画实现

        在 CSS 中,我们定义了多个动画,每个动画对应一个爱心的变形过程。通过 animation-delay 属性,我们可以控制每个爱心动画的开始时间,从而实现连续的动画效果。

动画属性说明

  • animation: 指定动画的名称和持续时间。

  • animation-delay: 指定动画开始前需要等待的时间。

  • animation-direction: 指定动画播放后是否反向播放。

  • transform: 用于实现元素的变形效果,如 translateY 用于垂直移动。

  • *: 通用选择器,将所有元素的内边距和外边距设置为0,去除列表样式。
  • #he: 设置ID为"he"的div元素样式。
    • width: 100%: 宽度占满父元素。
    • display: flex; justify-content: center; align-items: center;: 使用Flex布局,水平和垂直居中元素。
    • height: 100vh;: 设置高度为视窗的100%。
    • background-color: #232e6d;: 设置背景颜色为深蓝色。
  • ul: 设置ul元素的样式。
    • height: 200px;: 设置高度为200px。
  • li: 设置li元素的样式。
    • float: left;: 左浮动排列。
    • width: 20px; height: 20px;: 设置宽高为20px。
    • border-radius: 20px;: 圆角半径为20px,使其呈现圆形。
    • margin-right: 10px;: 右侧外边距为10px,用于控制元素之间的间距。
  • li:nth-child(n): 使用伪类选择器,针对每个li元素设置不同的背景颜色和动画。
  • @keyframes love1love5: 定义了五个不同的关键帧动画,分别命名为love1到love5,用于实现爱心加载动画效果。

 

解析

        在上面的 CSS 样式中,我们首先对整个页面进行了基本的样式重置,确保在不同浏览器中的一致性。然后,我们使用 Flexbox 将 <ul> 元素居中显示在页面中,并设置了背景色为深蓝色。

        每个 <li> 元素被赋予不同的背景色,并通过 CSS 动画 @keyframes 定义了每个心形的变换效果。每个动画都是无限循环的,且有不同的延迟时间,以实现一种连贯的加载效果。

完整代码

        

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">

    <!-- 视口设置,确保页面在不同设备上都能正确显示 -->
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>css3彩色变形爱心加载动画特效</title>

<style>
*{
	padding: 0;
	margin: 0;
	list-style: none;
}
   /* 整个页面的样式设置,背景颜色为深蓝色 */
#he{
	width: 100%; 
	display: flex;
	justify-content: center;
	align-items: center;
	height: 100vh;
	background-color: #232e6d;
}

    /* 列表容器样式,高度固定 */
ul{
	height: 200px;
}
   /* 列表项的样式,设置宽高和圆角 */
li{
	float: left;
	width: 20px;
	height: 20px;
	border-radius: 20px;
	margin-right: 10px;
}
       /* 每个列表项的动画效果,通过nth-child进行区分 */

li:nth-child(1){
	background-color: #f62e74;
	animation: love1 4s infinite;
}
li:nth-child(2){
	background-color: #f45330;
	animation: love2 4s infinite;
	animation-delay: 0.15s;
}
li:nth-child(3){
	background-color: #ffc883;
	animation: love3 4s infinite;
	animation-delay: 0.3s;
}
li:nth-child(4){
	background-color: #30d268;
	animation: love4 4s infinite;
	animation-delay: 0.45s;
}
li:nth-child(5){
	background-color: #006cb4;
	animation: love5 4s infinite;
	animation-delay: 0.6s;
}
li:nth-child(6){
	background-color: #784697;
	animation: love4 4s infinite;
	animation-delay: 0.75s;
}
li:nth-child(7){
	background-color: #ffc883;
	animation: love3 4s infinite;
	animation-delay: 0.9s;
}
li:nth-child(8){
	background-color: #f45330;
	animation: love2 4s infinite;
	animation-delay: 1.05s;
}
li:nth-child(9){
	background-color: #f62e74;
	animation: love1 4s infinite;
	animation-delay: 1.2s;
}
@keyframes love1{
  /* 动画的30%和50%时,高度变为60px,向上移动30px */
	30%,50%{height: 60px; transform: translateY(-30px);}
   /* 动画的75%到100%,高度恢复为20px,位置回到原点 */
	75%,100%{height: 20px; transform: translateY(0);}
}

  /* 定义其他动画love2, love3, love4, love5,模式与love1类似,只是高度和移动距离不同 */

@keyframes love2{
	30%,50%{height: 125px; transform: translateY(-62.5px);}
	75%,100%{height: 20px; transform: translateY(0);}
	
}
@keyframes love3{
	30%,50%{height: 160px; transform: translateY(-75px);}
	75%,100%{height: 20px; transform: translateY(0);}
}
@keyframes love4{
	30%,50%{height: 180px; transform: translateY(-60px);}
	75%,100%{height: 20px; transform: translateY(0);}
}
@keyframes love5{
	30%,50%{height: 190px; transform: translateY(-45px);}
	75%,100%{height: 20px; transform: translateY(0);}
}
</style>

</head>
<body>

<div id="he">
	<ul>
		<li></li>
		<li></li>
		<li></li>
		<li></li>
		<li></li>
		<li></li>
		<li></li>
		<li></li>
		<li></li>
	</ul>
</div>

</body>
</html>

结语

        通过上述步骤,我们成功实现了一个彩色变形爱心加载动画特效。这种动画可以应用于各种场景,增加网页的互动性和吸引力。希望这篇技术博客能帮助你了解和掌握 CSS3 动画的使用方法。如果你有任何问题或想要进一步探讨,欢迎在评论区交流。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/792489.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

收集路径下的html并写到根目录index.html

我们可以用简单的脚本生成一个简单的导航页。 用于查看当前路径下所有的html。 #!/bin/bash index_root"/root/test/" cd ${index_root} echo "" > index.htmlecho "<html><head><title>Test Report Index</title></…

VBA 批量发送邮件

1. 布局 2. 代码 前期绑定的话&#xff0c;需要勾选 Microsoft Outlook 16.0 Object Library Option ExplicitConst SEND_Y As String "Yes" Const SEND_N As String "No" Const SEND_SELECT_ALL As String "Select All" Const SEND_CANCEL…

VSCode升级后不能打开在MacOS系统上

VSCode 在MacOS无法打开 版本 VSCode version: 1.91.0 (x64) 错误信息&#xff1a; MacBook-Pro ~ % /Users/mac/Downloads/FirefoxDownloads/Visual\ Studio\ Code.app/Contents/MacOS/Electron ; exit; [0710/142747.971951:ERROR:crash_report_database_mac.mm(753)] op…

网络建设与运维23国赛网络运维正式赛题解析

竞赛环境请看主页&#xff01; 23国赛网络运维 任务描述&#xff1a;某集团公司在更新设备后&#xff0c;路由之间无法正常通信&#xff0c;请修 复网络达到正常通信。 &#xff08;1&#xff09; 请在server1“管理员”下拉菜单中选择“镜像”选项卡&#xff0c;点 击 “创…

浪潮天启防火墙TQ2000远程配置方法SSL-xxx、L2xx 配置方法

前言 本次设置只针对配置VXX&#xff0c;其他防火墙配置不涉及。建议把防火墙内外网都调通后再进行Vxx配置。 其他配置可参考&#xff1a;浪潮天启防火墙配置手册 配置SSLVxx 在外网端口开启SSLVxx信息 开启SSLVxx功能 1、勾选 “启用SSL-Vxx” 2、设置登录端口号&#xff0…

扫描全能王AIGC“黑科技”亮相WAIC,《人民日报》、央视、新华社同时“点赞”

2024年世界人工智能大会&#xff08;WAIC&#xff09;于近期圆满闭幕。今年&#xff0c;合合信息旗下扫描全能王展台成为大会的“网红”&#xff0c;以AI古籍修复为代表的体验项目不仅赢得了专业观众的赞誉&#xff0c;也获得了包括CCTV-4、CCTV-13、《人民日报》、新华社、解放…

好用的IP反查接口(2)

IP-地理信息查询接口-本地化 参考&#xff1a; 通过Ip查询对应地址,Ip2location全球IP地址网段-CSDN博客 因为在线接口有限制&#xff08;毕竟别人提供服务&#xff0c;服务器&#xff0c;数据维护&#xff0c;域名啥的都要费用&#xff09;&#xff0c; 所以本地化服务的需…

【K8s】专题七(1):Kubernetes 服务发现之 Service

以下内容均来自个人笔记并重新梳理&#xff0c;如有错误欢迎指正&#xff01;如果对您有帮助&#xff0c;烦请点赞、关注、转发&#xff01;欢迎扫码关注个人公众号&#xff01; 目录 一、基本介绍 二、工作原理 三、对象类型 四、资源清单&#xff08;示例&#xff09; 五…

Java---SpringBoot详解一

人性本善亦本恶&#xff0c; 喜怒哀乐显真情。 寒冬暖夏皆有道&#xff0c; 善恶终归一念间。 善念慈悲天下广&#xff0c; 恶行自缚梦难安。 人心如镜自省照&#xff0c; 善恶分明照乾坤。 目录 一&#xff0c;入门程序 ①&#xff0c;创建springboot工程&#…

【Qt】QTabWidget的tab页隐藏问题

在Qt中&#xff0c;使用 ​ui->tab1->setHidden(true);​ 来隐藏一个 ​QTabWidget​ 的特定标签页可能不会达到预期的效果&#xff0c;因为 ​setHidden(true)​ 是用于隐藏整个 ​QWidget​ 的&#xff0c;而不是隐藏 ​QTabWidget​ 中的一个标签页。 要隐藏 ​QTabW…

Python高级(三)_正则表达式

Python高级-正则表达式 第三章 正则表达式 在开发中会有大量的字符串处理工作,其中经常会涉及到字符串格式的校验。 1、正则表达式概述 正则表达式,又称正规表示式、正规表示法、正规表达式、规则表达式、常规表示法(英语:Regular Expression,在代码中常简写为regex、…

【深度好文】合作伙伴关系管理自动化:双向共赢新趋势

在当今快速变化的商业环境中&#xff0c;合作伙伴关系已成为企业成功的关键因素之一。为了更高效地管理这些关系&#xff0c;合作伙伴关系管理自动化正逐渐成为行业的新趋势&#xff0c;它不仅简化了管理流程&#xff0c;更促进了双方共赢的局面。 一、传统管理 VS 自动化管理 …

Spring系列二:基于XML配置bean 下

基于XML配置bean &#x1f496;配置bean后置处理器&#x1f496;通过属性文件配置bean&#x1f496;基于XML的bean的自动装配&#x1f496;Spring El 表达式配置Bean &#x1f496;配置bean后置处理器 1在spring的ioc容器, 可以配置bean的后置处理器 2.该 处理器/对象 会在bean…

【AI大模型】通义灵码的部署与使用

【AI大模型】通义灵码的部署与使用 目前已支持&#xff1a; JetBrains IDEsIDE 版本&#xff1a;IntelliJ IDEA、PyCharm、GoLand、WebStorm、Android Studio 等 2020.3 及以上操作系统&#xff1a;Windows 7 及以上、macOS、LinuxVisual Studio CodeIDE 版本&#xff1a;1.68.…

常见网页问题解决

用edge浏览器打印功能时&#xff0c;出现瞬间或加载几秒后突然闪退情况&#xff0c;本来以为是浏览器出了问题&#xff0c;去重置设置也没有&#xff0c;后来又下载了Chrome浏览器&#xff0c;没想到还是一样&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;想着…

亿发512版本更新,看数据驾驶舱、扫码拣货、UDI序列号的新功能

如果您正寻求突破传统业务模式的束缚&#xff0c;希望拥抱数字化转型带来的无限可能&#xff0c;我们诚邀您体验亿发软件。亿发专业团队将为您提供个性化的咨询和定制服务&#xff0c;帮助您的企业快速适应市场变化&#xff0c;实现业务模式和商业模式的创新。

07-7.5.1 散列表的基本概念

&#x1f44b; Hi, I’m Beast Cheng &#x1f440; I’m interested in photography, hiking, landscape… &#x1f331; I’m currently learning python, javascript, kotlin… &#x1f4eb; How to reach me --> 458290771qq.com 喜欢《数据结构》部分笔记的小伙伴可以…

Centos7下zabbix安装与部署

Centos7下zabbix安装与部署 一、Zabbix介绍 1、zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案 2、zabbix能监视各种网络参数&#xff0c;保证服务器系统的安全运营&#xff1b;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各…

2024最新版pycharm安装激火教程,附安装包+激huo马,Python教程,pycharm安装包!!

PyCharm的安装 PyCharm 是一个专门为 Python 开发者设计的 IDE&#xff0c;它同样具有代码导航、重构、调试和分析等功能。PyCharm 支持多种项目类型&#xff0c;如普通项目、Python 测试项目、Django 项目等&#xff0c;并提供了大量的内置模板和插件&#xff0c;以帮助您更快…

【CT】LeetCode手撕—8. 字符串转换整数 (atoi)

目录 题目1- 思路2- 实现⭐8. 字符串转换整数 (atoi)——题解思路 3- ACM 实现 题目 原题连接&#xff1a;8. 字符串转换整数 (atoi) 1- 思路 思路 x 的平方根 ——> 利用二分 ——> 二分的 check条件为 k^2 < x 2- 实现 ⭐8. 字符串转换整数 (atoi)——题解思路 …