前端小练习:案例5.律动爱心

目录

一.效果预览图

 二.实现思路 ​编辑

1.html部分

2.css部分 

三.完整代码 


一.效果预览图

 二.实现思路 

想要实现爱心律动效果并不难,核心点是关键帧动画。 定义律动爱心需要的元素块,使用定位或者弹性布局等方法(定位元素不适合布局,建议用弹性布局),使9个块元素在一行,给每个块元素定义关键帧动画@keyframes(关键帧动画关键字) 改变其长度,使用animation:love2 5s 1.4s infinite;定义关键字动画的速度,动画执行次数infinite(一直执行),你也可以设置动画的运动函数使其达到理想的动态效果。

1.html部分

 用无序列表构建10个块元素(ul 1 ,li 9),li从1-9分别对应律动爱心的发生变化的9个元素

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="css/002.css">
</head>
<body>
    <ul>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
    </ul>
</body>
</html>

2.css部分 

css样式,改变背景颜色,使用弹性布局使其居中,定义关键帧动画。

*{
    padding: 0;
    margin: 0;
}
body{
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100vh;
    background-color: #000;
}
ul{
    position:relative;
    display: flex;
    height: 200px;
}
ul::after{
    content: '爱心怦怦跳';
    position: absolute;
    top: 100px;
    left: 50%;
    color: darkturquoise;
    font-size: 30px;
    font-weight: 700px;
    transform: translate(-50%,-700%);
}
li{
    width: 20px;
    height: 20px;
    border-radius: 10px;
    margin: 0 10px;
}
li:nth-child(1){
    background-color: red;
    animation:love1 5s 0s infinite;
}
li:nth-child(2){
    background-color: darkturquoise;
    animation:love2 5s 0.2s infinite;
}
li:nth-child(3){
    background-color: darksalmon;
    animation:love3 5s 0.4s infinite;
}
li:nth-child(4){
    background-color: deeppink;
    animation:love4 5s 0.6s infinite;
}
li:nth-child(5){
    background-color: yellow;
    animation:love5 5s 0.8s infinite;
}
li:nth-child(6){
    background-color: deeppink;
    animation:love4 5s 1s infinite;
}
li:nth-child(7){
    background-color: darksalmon;
    animation:love3 5s 1.2s infinite;
}
li:nth-child(8){
    background-color: darkturquoise;
    animation:love2 5s 1.4s infinite;
}
li:nth-child(9){
    background-color: red;
    animation:love1 5s 1.6s infinite;
}
/*定义动画*/
@keyframes love1 {
    30%,50%{
        height: 60px;
        transform: translateY(-30px);
    }
    70%,100%{
        height: 20px;
        transform: translateY(0px);
    }
}
@keyframes love2{
    30%,50%{
        height: 125px;
        transform: translateY(-60px);
    }
    70%,100%{
        height: 20px;
        transform: translateY(0px);
    }
}
@keyframes love3 {
    30%,50%{
        height: 160px;
        transform: translateY(-75px);
    }
    70%,100%{
        height: 20px;
        transform: translateY(0px);
    }
}
@keyframes love4 {
    30%,50%{
        height: 180px;
        transform: translateY(-60px);
    }
    70%,100%{
        height: 20px;
        transform: translateY(0px);
    }
}
@keyframes love5 {
    30%,50%{
        height: 200px;
        transform: translateY(-45px);
    }
    70%,100%{
        height: 20px;
        transform: translateY(0px);
    }
}

三.完整代码 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style> 
     *{
    padding: 0;
    margin: 0;
    }
body{
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100vh;
    background-color: #000;
}
ul{
    position:relative;
    display: flex;
    height: 200px;
}
ul::after{
    content: '爱心怦怦跳';
    position: absolute;
    top: 100px;
    left: 50%;
    color: darkturquoise;
    font-size: 30px;
    font-weight: 700px;
    transform: translate(-50%,-700%);
}
li{
    width: 20px;
    height: 20px;
    border-radius: 10px;
    margin: 0 10px;
}
li:nth-child(1){
    background-color: red;
    animation:love1 5s 0s infinite;
}
li:nth-child(2){
    background-color: darkturquoise;
    animation:love2 5s 0.2s infinite;
}
li:nth-child(3){
    background-color: darksalmon;
    animation:love3 5s 0.4s infinite;
}
li:nth-child(4){
    background-color: deeppink;
    animation:love4 5s 0.6s infinite;
}
li:nth-child(5){
    background-color: yellow;
    animation:love5 5s 0.8s infinite;
}
li:nth-child(6){
    background-color: deeppink;
    animation:love4 5s 1s infinite;
}
li:nth-child(7){
    background-color: darksalmon;
    animation:love3 5s 1.2s infinite;
}
li:nth-child(8){
    background-color: darkturquoise;
    animation:love2 5s 1.4s infinite;
}
li:nth-child(9){
    background-color: red;
    animation:love1 5s 1.6s infinite;
}
/*定义动画*/
@keyframes love1 {
    30%,50%{
        height: 60px;
        transform: translateY(-30px);
    }
    70%,100%{
        height: 20px;
        transform: translateY(0px);
    }
}
@keyframes love2{
    30%,50%{
        height: 125px;
        transform: translateY(-60px);
    }
    70%,100%{
        height: 20px;
        transform: translateY(0px);
    }
}
@keyframes love3 {
    30%,50%{
        height: 160px;
        transform: translateY(-75px);
    }
    70%,100%{
        height: 20px;
        transform: translateY(0px);
    }
}
@keyframes love4 {
    30%,50%{
        height: 180px;
        transform: translateY(-60px);
    }
    70%,100%{
        height: 20px;
        transform: translateY(0px);
    }
}
@keyframes love5 {
    30%,50%{
        height: 200px;
        transform: translateY(-45px);
    }
    70%,100%{
        height: 20px;
        transform: translateY(0px);
    }
}
    </style>
</head>
<body>
    <ul>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
    </ul>
</body>
</html>

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

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

相关文章

zookeeper和kafka

目录 一、zookeeper理论 1.1、zookeeper定义 1.2、zookeeper工作机制 1.3、zookeeper特点 1.4、zookeeper的数据结构 1.5、zookeeper应用场景 1.6、zookeeper的选举机制 二、部署Zookeeper 集群 2.1、环境准备 2.2、安装 Zookeeper 2.3、修改配置文件 2.4、配置…

百度智能创做AI平台

家人们好&#xff0c;在数字化时代&#xff0c;人工智能正引领着一场前所未有的创新浪潮。今天&#xff0c;我们将为大家介绍百度智能创做AI平台&#xff0c;这个为创意赋能、助力创作者的强大工具。无论你是创意工作者、内容创作者&#xff0c;还是想要释放内心创造力的个人&a…

Linux下进程的特点与环境变量

目录 进程的特点 进程特点的介绍 进程时如何实现并发性的 进程间如何切换 概念铺设 PC指针 上下文 环境变量 PATH 修改PATH HOME SHELL env 命令行参数 什么是命令行参数&#xff1f; 打印命令行参数 通过函数获得环境变量 getenv 命令行参数 env 修改环境变…

JavaScript(四)DOM及CSS操作

1、DOM简介 DocumentType: Html的声明标签 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Docume…

从零开始,开发自己的微信小程序小白也能搞定

微信小程序已经成为了很多创业者实现梦想的利器。乔拓云平台提供了一套完整的小程序创建流程&#xff0c;让你轻松打造属于自己的小程序商城。下面就跟随这篇文章&#xff0c;一步一步来看如何创建一个成功的微信小程序商城吧&#xff01; 首先&#xff0c;你需要登录乔拓云平台…

【数据结构】实现单链表的增删查

目录 1.定义接口2.无头单链表实现接口2.1 头插addFirst2.2 尾插add2.3 删除元素remove2.4 修改元素set2.5 获取元素get 3.带头单链表实现接口3.1 头插addFirst3.2 尾插add3.3 删除元素remove3.4 判断是否包含元素element 1.定义接口 public interface SeqList<E>{//默认…

第九节 文件操作

文章目录 1. 引言2. 基本的文件操作2.1 打开文件2.1.1 mode 访问模式2.1.2 文件不存在,则创建文件2.1.3 二进制打开文件2.1.4 打开文件时&#xff0c;指定编码方式 2.2 关闭文件2.2.1 with 打开语句结构 2.3 文件的读写2.3.1 写入文件内容2.3.2 读取文件2.3.2.1 read&#xff0…

TCP的三次握手四次挥手

TCP的三次握手和四次挥手实质就是TCP通信的连接和断开。 三次握手&#xff1a;为了对每次发送的数据量进行跟踪与协商&#xff0c;确保数据段的发送和接收同步&#xff0c;根据所接收到的数据量而确认数据发送、接收完毕后何时撤消联系&#xff0c;并建立虚连接。 四次挥手&a…

JVM系统优化实践(24):ZGC(一)

您好&#xff0c;这里是「码农镖局」CSDN博客&#xff0c;欢迎您来&#xff0c;欢迎您再来&#xff5e; 截止到目前&#xff0c;算上ZGC&#xff0c;Java一共有九种类型的GC&#xff0c;它们分别是&#xff1a; 1、Serial GC 串行/作用于新生代/复制算法/响应速度优先/适用于单…

pointpillars在Ubuntu2004训练的总结

1、找到pointpcdet-master之后在此打开终端输入code进入VScode界面 code 2、激活pp环境 conda activate pp 3、cd进入tools cd tools 4、将kitti数据集准备好放入data路径下之后开始训练 python train.py --cfg_file cfgs/kitti_models/pointpillar.yaml 5、训练完成之…

GraphGT: Machine Learning Datasets for Graph Generation and Transformation

一、文章来源 > Du Y, Wang S, Guo X, et al. Graphgt: Machine learning datasets for graph generation and transformation[C]//Thirty-fifth Conference on Neural Information Processing Systems Datasets and Benchmarks Track (Round 2). 2021.二、概述 1、文章提出…

CMU-CERT内部威胁数据集 r4.2版本介绍

CMU-CERT内部威胁数据集 r4.2版本介绍 一、相关介绍二、CMU-CERT r4.2版本内容三、重大变更 一、相关介绍 “CMU”是卡内基梅隆大学&#xff08;Carnegie Mellon University&#xff09;的简称。 “CERT”是卡内基梅隆大学的一个研究中心叫“CERT”&#xff0c;主要研究内部威…

汇川伺服常见故障处理

伺服系统故障拓扑图 Er.941 变更参数需重新上电生效 产生机理:伺服驱动器的功能码属性“生效时间”为“再次通电”时,该功能码参数值变更后,驱动器提醒用户需要重新上电。 原因 确认方法 处理措施 变更了再次通电后更改生效的功能码 确认是否更改了“生效时间”为“重新上电…

PLC拉格朗日插值(SCL、ST计算源代码)

插值是对函数进行近似的基本方法,这篇博客主要介绍常用的拉格朗日插值法, Lagrange插值法不太清楚的同学,可以看看数值计算和分析类书籍,网上有很多C语言的拉格朗日插值算法,这里我们主要给出在PLC里利用ST,SCL语言完成拉格朗日插值计算。 1、拉格朗日插值FC 插值法可以…

状态模式——对象状态及其转换

1、简介 1.1、概述 在软件系统中&#xff0c;有些对象也像水一样具有多种状态&#xff0c;这些状态在某些情况下能够相互转换&#xff0c;而且对象在不同的状态下也将具有不同的行为。为了更好地对这些具有多种状态的对象进行设计&#xff0c;可以使用一种被称为状态模式的设…

如何把pdf转成cad版本?这种转换方法非常简单

将PDF转换成CAD格式的优势在于&#xff0c;CAD格式通常是用于工程设计和绘图的标准格式。这种格式的文件可以在计算机上进行编辑和修改&#xff0c;而不需要纸质副本。此外&#xff0c;CAD文件通常可以与其他CAD软件进行交互&#xff0c;从而使得工程设计和绘图过程更加高效和精…

fetch-github-hosts间隔一年大更新v2.6发布,多端支持

前言 fetch-github-hosts是一款同步 github hosts 的工具&#xff0c;用于帮助您解决github时而无法访问的问题。在间隔了一年之久的时间&#xff0c;最近抽空将fetch-github-hosts的依赖及UI进行了一波大更新&#xff0c;同时也增加了一些实用的功能。 主要更新 更新了基础依…

安全渗透知识总结二

目录 一、html实体编码 1、Unicode字符编码 2、字符的数字表示 3、常见实体编码 4、url 协议 主机 http状态码 http常用的状态码 端口 常见协议端口 查询参数 锚点 url字符 urlcode字符 绝对url和相对url 二、字符编码 Ascll字符集 html字符集 html的url编码 …

thinkphp8.0多应用模式下提示控制器不存在

thinkphp 8.0 开启多应用模式 1、按照官方文档说明 &#xff0c;已经安装了 think-multi-app composer require topthink/think-multi-app 2、控制器的命名空间也没写错。 3、访问路径与目录名、控制器、方法名一样&#xff0c;访问地址是没错的。 4、网上有说&#xff0c;在…

ubuntu调整路由顺序

Ubuntu系统跳转路由顺序 1、安装ifmetric sudo apt install ifmetric2、查看路由 route -n3、把Iface下面的eth1调到第一位 sudo ifmetric eth1 0命令中eth1是网卡的名称&#xff0c;更改网卡eth1的跃点数&#xff08;metric值&#xff09;为0&#xff08;数值越小&#xf…