案例1- 跳动的心

一颗正在跳动的心

案例思路演示

再通过添加动画效果以达到完成心形构建目的

环境构建

html 复制代码
<!DOCTYPE html>
<html lang="zh">
  <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>跳动的心</title>

    <style>
      /* 初始化页面 */
      html,body{
      width: 100%;
      height: 100%;
      }

      body{
      background-color: pink;
      /* 设置父级元素元素变成了一个弹性容器,直接子元素变成弹性子元素 */
      display: flex;
      /* 定义主轴为水平方向 */
      flex-direction: row;
      /* 子项居中对齐在容器的主轴 */
      justify-content: center;
      /* 子项在容器中垂直居中 */
      align-items: center;
      }
      .heart{
      width: 200px;
      height: 200px;
      background-color: red;
      position: relative;
      }
      .heart .b{
      content:"";
      width: 200px;
      height: 100px;
      background-color: yellow;
      position: absolute;
      left: 0;
      top: -100px;

      }
      .heart .a{
      content:"";
      width: 100px;
      height: 200px;
      background-color: yellow;
      position: absolute;
      left: -100px;
      top: 0;
      }


    </style>

  </head>

  <body>
    <div class="heart">
      <div class="a"></div>
      <div class="b"></div>
    </div>
  </body>
</html>

a 和 b 圆角化

html 复制代码
border-radius: 100px 0 0 100px;

border-radius: 100px 100px 0 0 ;

父容器 旋转45度

html 复制代码
transform: rotate(45deg);

动画效果

html 复制代码
/* 让心跳动起来 */
@keyframes heartbit{
  0%{
    transform: rotate(45deg) scale(0.6);
  }
  100%{
    transform: rotate(45deg) scale(1.4);
  }
}

父容器 实现动画效果
animation: heartbit 1s alternate infinite;

添加阴影效果

html 复制代码
box-shadow: 0 0 30px red;

完成后代码

html 复制代码
<!DOCTYPE html>
<html lang="zh">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<title>跳动的心</title>
	
	<style>
		/* 初始化页面 */
			html,body{
				width: 100%;
				height: 100%;
			}
		
			body{
				background-color: pink;
				/* 设置父级元素元素变成了一个弹性容器,直接子元素变成弹性子元素 */
				display: flex;
				/* 定义主轴为水平方向 */
				flex-direction: row;
				/* 子项在容器中垂直居中 */
				align-items: center;
				/* 子项居中对齐在容器的主轴 */
				justify-content: center;
			}
			.heart{
				width: 200px;
				height: 200px;
				background-color: red;
				position: relative;
				transform: rotate(45deg);
				animation: heartbit 1s alternate infinite;
				box-shadow: 0 0 30px red;
				
			}
			.heart .b{
				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;
				
			}
			.heart .a{
				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;
			}
			
			/* 让心跳动起来 */
			@keyframes heartbit{
				0%{
					transform: rotate(45deg) scale(0.6);
				}
				100%{
					transform: rotate(45deg) scale(1.4);
				}
			}
		
		
	</style>
	
</head>

<body>
	<div class="heart">
		<div class="a"></div>
		<div class="b"></div>
	</div>
</body>
</html>
相关推荐
三十而立洋4 天前
Cookie 详解:从产生到安全,一次讲透
前端·javascript
卡布鲁4 天前
把一个 Vite + Vue3 应用塞进 qiankun (React + Umi3) 主站:十个坑的复盘
前端·javascript·react.js
李少兄4 天前
JavaScript 隐式全局变量解析
javascript
沙蒿同学4 天前
我用 Go 搭了一条 AI Agent 流水线:从 1 张商品图到一整套淘宝详情页
前端·javascript·后端
paopaokaka_luck4 天前
智慧社区综合服务小程序(人脸识别、AI问答、Echarts图形化分析)
前端·javascript·spring boot·spring·数据分析·echarts
Hilaku4 天前
为什么死磕 1px 的团队,用户体验反而更差?
前端·javascript·程序员
陈拉斯4 天前
给公司年会写了个大屏抽奖系统:动画在前端跑,凭什么说结果没被改?
javascript
yzy854 天前
Vue中下载或打开文件的JavaScript方法
前端·javascript·vue
用户298698530144 天前
在 React 中用 JavaScript 将 Word 转换为文本
前端·javascript·react.js
李少兄4 天前
深入解析 JavaScript 中的 `document` 对象
javascript