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

news2024/11/27 22:41:21

目录

一.效果预览图

 二.实现思路 ​编辑

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>

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Spring Boot】(一)Spring Boot 项目的创建和使用

文章目录 前言一、什么是 Spring Boot1.1 初识 Spring Boot1.2 Spring Boot 的核心设计思想1.3 Spring Boot 的优点 二、Spring Boot 项目的创建2.1 使用 IDEA 创建2.2 使用网页创建2.3 项目的目录结构 三、Hello World3.1 运行启动类3.2 通过浏览器页面输出 Hello World3.3 约…

当编程遇上AI,纵享丝滑

目录 前言 一、提出需求 二、检查代码 三、进一步提出需求 总结 前言 自从CHATGPT火了以后&#xff0c;我发现我身边的人再也不怕写报告了&#xff0c;什么个人总结&#xff0c;汇报材料&#xff0c;年度总结&#xff0c;伸手就来&#xff08;反正哪些报告也没人看&#x…

JavaScript 一段代码快速入门

仅记录了和c有所不同之处&#xff0c;其余类似。 一段简单代码 // 关注点分离&#xff0c;指html页面设计和javascript页面行为分离// 对象&#xff0c;键值对形式 const user {name: "gyf",age: 20,jobs: ["front-end", "engineer", 2, true…

Syncfusion Essential Edit for WPF Crack

Syncfusion Essential Edit for WPF Crack 在任何WPF应用程序中启用语法高亮显示。 Syncfusion Essential Edit for WPF是一款具有所有基本功能的编辑器&#xff0c;如文本编辑、剪切、复制和粘贴。它允许用户从各种文件格式打开文件并将其保存为各种文件格式。Syncfusion Esse…

字符串的匹配算法【学习算法】

字符串的匹配算法【学习算法】 前言版权推荐字符串的模式匹配BF模式匹配算法KMP模式匹配算法 Java中实现算法官方题解调用Java的API参考Java的APIBF算法KMP算法 C中实现算法KMP算法 最后 前言 2023-8-6 12:06:42 以下内容源自《【学习算法】》 仅供学习交流使用 版权 禁止其…

UDS服务基础篇之31

UDS服务基础篇之31服务 前言 正如前文《UDS基础之2F服务》所说的2F服务与今天本文要将的31服务存在着有些相似之处&#xff0c;因此需要针对31服务本身进行较为细致的剖析&#xff0c;在此小T抛出如下几个基本问题供大家思考&#xff1a; 你知道31服务是干什么的吗&#xff…

K8S系列文章之 内外网如何互相访问

K8S中网络这块主要考虑 如何访问外部网络以及外部如何访问内部网络 访问外网服务的两种方式 需求 k8s集群内的pod需要访问mysql&#xff0c;由于mysql的性质&#xff0c;不适合部署在k8s集群内,故k8s集群内的应用需要链接mysql时&#xff0c;需要配置链接外网的mysql,本次测试…

35岁焦虑:体能下滑,新陈代谢变慢,还是我们的日常行为?

35岁焦虑&#xff1a;体能下滑&#xff0c;新陈代谢变慢&#xff0c;还是我们的日常行为&#xff1f; &#x1f607;博主简介&#xff1a;我是一名正在攻读研究生学位的人工智能专业学生&#xff0c;我可以为计算机、人工智能相关本科生和研究生提供排忧解惑的服务。如果您有任…

python的下载和安装步骤,python下载安装教程3.10.0

大家好&#xff0c;给大家分享一下python下载安装教程3.10.0&#xff0c;很多人还不知道这一点。下面详细解释一下。现在让我们来看看&#xff01; 第一步&#xff1a;下载Python安装包 在Python的官网 www.python.org 中找到最新版本的Python安装包&#xff0c;点击进行下载&a…

了解HTTP代理日志:解读请求流量和响应信息

嗨&#xff0c;爬虫程序员们&#xff01;你们是否在了解爬虫发送的请求流量和接收的响应信息上有过困扰&#xff1f;今天&#xff0c;我们一起来了解一下。 首先&#xff0c;我们需要理解HTTP代理日志的基本结构和内容。HTTP代理日志是对爬虫发送的请求和接收的响应进行记录的文…

坐标转换-使用geotools读取和转换地理空间表的坐标系(sqlserver、postgresql)

前言&#xff1a; 业务上通过GIS软件将空间数据导入到数据库时&#xff0c;因为不同的数据来源和软件设置&#xff0c;可能导入到数据库的空间表坐标系是各种各样的。 如果要把数据库空间表发布到geoserver并且统一坐标系&#xff0c;只是在geoserver单纯的设置坐标系只是改了…

听别人说学习机器人哪个方向合适不重要-自己想做什么最重要

2023年7-8月暑期档有一部火热的电影《封神之朝歌风云》 姬昌那句「你是谁的儿子不重要&#xff0c;你是谁才重要」 年轻人要勇于突破权威强加于自身的桎楛&#xff0c;要独立思考&#xff0c;果敢刚毅。 唯有如此才能摆脱工具人的宿命。 AI&#xff1a; 电影《封神之朝歌风云…

IDEA项目实践——Spring框架简介,以及IOC注解

系列文章目录 IDEA创建项目的操作步骤以及在虚拟机里面创建Scala的项目简单介绍 IDEA项目实践——创建Java项目以及创建Maven项目案例、使用数据库连接池创建项目简介 IDEWA项目实践——mybatis的一些基本原理以及案例 IDEA项目实践——动态SQL、关系映射、注解开发 文章目…

前端js--旋转幻灯片

效果图 代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><link rel"stylesheet" href"…

python打印oracle19c版本号

Author: liukai 2810248865qq.com Date: 2022-08-18 04:28:52 LastEditors: tkhywang 2810248865qq.com LastEditTime: 2023-07-08 08:58:24 FilePath: \PythonProject01\&#xfffd;&#xfffd;ӡoracle&#xfffd;&#xfffd;&#xfffd;ݿ&#xfffd;汾&#xfffd;&a…

《孙子兵法》是世界上最著名的中国著作,不服来看,趣讲《孙子兵法》第1讲

《孙子兵法》是世界上最著名的中国著作&#xff0c;不服来看&#xff01;趣讲《孙子兵法》【第1讲】 世界上最有名的中国著作肯定是《孙子兵法》。在著名的美国西点军校是必修课。 在企业管理领域&#xff0c;听一些讲座&#xff0c;经常会引用到《孙子兵法》的一些名句&#…

手把手教你用idea实现Java连接MySQL数据库

目录 1.下载MySQL 2.下载mysql 的jdbc驱动 3.将驱动jar包导入idea 4.通过Java测试数据库是否连接成功 1.下载MySQL 首先如果没有mysql的需要先下载MySQL&#xff0c;可以看这个教程 MYSQL安装手把手&#xff08;亲测好用&#xff09;_程序小象的博客-CSDN博客 2.下载mysql…

IDEA Run SpringBoot程序步骤原理

这个文章不是高深的原理文章&#xff0c;仅仅是接手一个外部提供的阉割版代码遇到过的一个坑&#xff0c;后来解决了&#xff0c;记录一下。 1、IDEA Run 一个SpringBoot一直失败&#xff0c;提示找不到类&#xff0c;但是maven install成功&#xff0c;并且java -jar能成功ru…

红帽8.2版本CSA题库:第三题调试 SELinux

semanage port -a -t http_port_t -p tcp 82 semanage fcontext -m -t httpd_sys_content_t /var/www/html/file1 //必须先做这步再做restorecon restorecon -Rv /var/www/html firewall-cmd --permanent --add-port82/tcp firewall-cmd --reload systemctl enable --now htt…

Fiddler无法抓包怎么解决?这些配置项你需要检查。尤其是最后一项。

有时候&#xff0c;我们的fiddler启动是正常的&#xff0c;但是就是抓不到包&#xff0c;原因有很多。但多数情况都是因为配置不正确&#xff0c;接下来我们就看下有哪些导致fiddler抓不到的设置 。 1 是否配置代理服务器 一般情况下此设置会自动配置&#xff0c;但是如果抓不…