首页 > 其他分享 >【html】爱心跳动动画:CSS魔法背后的故事

【html】爱心跳动动画:CSS魔法背后的故事

时间:2024-06-19 11:28:56浏览次数:14  
标签:动画 rotate heart 魔法 transform 爱心 html CSS

 效果展示:

代码介绍:

爱心跳动动画:CSS魔法背后的故事

在前端开发中,CSS不仅仅是一种用于控制网页样式的工具,它也是一种表达创意和想象力的艺术手段。今天,我要为大家介绍一段使用CSS实现的爱心跳动动画代码,这段代码将带您领略CSS的魔法之处。

首先,我们来整体看一下这个动画的结构。这个动画主要由一个类名为heart的<div>元素构成,通过CSS的伪元素::before和::after来绘制出爱心的形状。同时,我们还使用了CSS的@keyframes规则来定义动画效果,让爱心能够呈现出跳动的视觉效果。

在CSS中,我们首先通过*选择器重置了所有元素的margin和padding,确保了页面布局的一致性。接着,我们设置了body和html的宽度和高度都为100%,这样可以让页面内容完全填满整个视口。

然后,我们定义了.heart类及其伪元素的样式。使用position: relative;将.heart元素定位为其正常位置,然后通过::before和::after伪元素来创建爱心的上半部分和下半部分。这里利用了绝对定位(position: absolute;)和border-radius属性来绘制出圆润的爱心形状。同时,我们还添加了box-shadow来增强爱心的立体感。

接下来是动画的核心部分。我们使用@keyframes定义了一个名为heartbit的动画,该动画描述了爱心跳动的过程。在动画的0%和100%状态下,我们通过transform: rotate(45deg) scale(0.6/1.4);来改变爱心的缩放比例,从而模拟出跳动的效果。这里需要注意的是,虽然我们试图通过改变font-size来影响动画效果,但实际上font-size对.heart这个不包含文本的元素没有任何影响,因此这部分代码是无效的。

最后,在.heart类中,我们将animation属性设置为heartbit 0.1s alternate infinite;,这表示动画将无限次地交替播放,每次播放的持续时间为0.1秒。

此外,代码中还有一个p元素的样式定义,但是在HTML结构中并没有对应的p元素,所以这个样式在这里并没有发挥作用。

通过这个例子,我们可以看到CSS的强大之处。它不仅能够控制页面的布局和样式,还能够通过动画和交互效果为网页增添活力和趣味性。当然,这只是一个简单的例子,CSS还有很多高级特性和用法等待我们去探索和实践。希望这个例子能够激发您对CSS的兴趣和热情,让您在前端开发的道路上越走越远。

源码:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        * {
            margin: 0;
            padding: 0;

        }

        body,
        html {
            width: 100%;
            height: 100%;
        }
        .heart::before{
            content: "";
            width: 200px;
            height: 100px;
            background-color: red;
            position: absolute;
            left: 0;
            top: -99px;
            border-radius: 100px 100px  0 0;
            box-shadow: 0 0 30px red;
        }

        body {
            background-color: pink;
            display: flex;
            flex-direction: row;
            justify-content: center;
            align-items: center;
        }

        .heart::after{
            content: "";
            width: 100px;
            height: 200px;
            background-color: red;
            position: absolute;
            left: -99px;
            top: 0;
            border-radius:  100px 0 0 100px;
            box-shadow: 0 0 30px red;
        }


        .heart {
            display: flex;
            justify-content: center;
            align-items: center;
            width: 200px;
            height: 200px;
            background-color: red;
            position: relative;
            transform: rotate(45deg);
            animation: heartbit 0.1s alternate infinite;
            box-shadow: 0 0 30px red;
        }

        @keyframes heartbit{
            0%{
                transform: rotate(45deg) scale(0.6) ;
                font-size: 30px;
            }
            /* 25%{
                transform: rotate(45deg) scale(0.8);
            }
            50%{
                transform: rotate(45deg) scale(1);
            }
            75%{
                transform: rotate(45deg) scale(1.2);
            } */
            
            100%{
                transform: rotate(45deg) scale(1.4);
                font-size: 30px;
            }
            
        }

        p{
            transform: rotate(315deg);
            
        }
    </style>
</head>

<body>
    <div class="heart">

    </div>
</body>

</html>

标签:动画,rotate,heart,魔法,transform,爱心,html,CSS
From: https://blog.csdn.net/weixin_56334307/article/details/139797799

相关文章

  • css_9_伪元素选择器
    伪元素选择器作用:选中元素的一些特殊位置常用的一些伪元素1.选中元素中的第一个文字(第一个字母)::first-letter/*选中的是div的第一个文字*/div::first-letter{color:blueviolet;font-size:50px;}2.选中的是......
  • css_8_复合选择器_伪类选择器_目标伪类&语言伪类
    一.目标伪类作用:选中锚点指向的元素(特定id)结构::target举例:div:target{background-color:gray;}<ahref="#d1">去目标伪类1</a><ahref="#d2">去目标伪类2</a><divid="d1">这是在说目标伪......
  • css_7_复合选择器_伪类选择器_否定伪类&UI伪类
    一.否定伪类作用:排除满足括号中条件的元素结构:not(选择器)举例:<body><div><p>否定伪类1</p><p>否定伪类2</p><pclass="fail"title="否定伪类3">否定伪类3</p><pclass="fail"ti......
  • CSS动画(个人资料卡片)
    1.整体效果https://mmbiz.qpic.cn/sz_mmbiz_gif/EGZdlrTDJa63Oz8IaRI51Mw7mY02LHmnpXicG4icA3ERN1MVszMdNafsgV3xaVHLhMA6avquSJux4CLV8uggtfbw/640?wx_fmt=gif&from=appmsg&wxfrom=13今天呈现的不仅是一个个人介绍界面,而是一次交互式的视觉体验。精心编排的HTML与CSS......
  • ​b站视频演示效果:【web前端特效源码】使用HTML5+CSS3+JavaScript十分钟快速制作一个
    b站视频演示效果:【网页设计期末大作业源代码】使用HTML5+CSS3+JavaScript十分钟快速制作一个简约大气卡通动漫静态网站|自制超简单的卡通类网页,响应式自适应新手友效果图:完整代码:<!DOCTYPEhtml><html><head><title>Home</title><metaname="viewpor......
  • HTML中的文本居中
    HTML中的文本居中参考:htmlcentertext在网页设计中,文本居中是一种常见的布局需求,用于提高页面的美观性和用户体验。HTML(HyperTextMarkupLanguage)作为构建网页内容的标准标记语言,配合CSS(CascadingStyleSheets)可以实现文本的居中显示。本文将详细介绍如何在HTML中实现文本居......
  • CSS学习笔记
    一、盒子模型1.简介盒子模型是网页布局的基础,将页面中所有元素都看作是一个盒子,盒子都包含以下几个属性:width宽度height高度border边框padding内边距margin外边距2.盒子模型2.1border表示盒子的边框分为四个方向:上top、右right、下bottom、左leftborder-top......
  • js+css元素动态出现,前端让元素从底部动态显现,前端让元素从底部跳跃显示
    实现效果实现原理一点也不复杂,耐心看完,思路理解后直接复制粘贴即可使用1.为想要动态出现的元素添加指定class类名,我这里用(animate-element)2.监听屏幕滚动,屏幕滚动时,如果屏幕高度减去元素顶部相对于屏幕的位置大于0的话,说明已经滚动到当前元素,然后给这个元素添加c......
  • HTML5期末考核大作业——学生网页设计作业源码HTML+CSS+JavaScript 中华美德6页面带音
    ......
  • HTML+CSS个人静态网页设计
    ......