博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
心跳 CSS
阅读量:5292 次
发布时间:2019-06-14

本文共 1769 字,大约阅读时间需要 5 分钟。

生活中我们所见到的大部分图形(正方形、长方形、圆形、椭圆、三角形、多边形...)都是可以用css3来实现,以及一些复杂点的图形——其实都是由基本图形组合而成的。

由于明天就是情人节了,所以今天我们就用css3画一个心形然后再利用css3实现心跳的动画:

首先分析一下,心跳都可以用哪些基本图形组成

方案一:两个圆 + 正方形

下面我们开始用代码来实现这个图形

先创建一个 div 给它添加一个 class heart

heart的样式是宽和高都为200px的正方形

.heart{
width: 200px; height: 200px; background: #f00; position: relative;}

我们再利用伪元素 before 和 after 来画出另外两个圆,另外两个圆的直径和我们正方形的宽度是一样的

.heart:before, .heart:after{
content: ""; position: absolute; width: 200px; height: 200px; background: #f00; border-radius: 100px;}

再对  before 和 after 的位置做微调整,before  伪元素相对于正方形左移一个半径的距离,after 伪元素相对于正方形上移一个半径的距离

.heart:before{
left: -100px; }.heart:after{
left: 0; top: -100px;}

我们再利用 filter 给心形添加一个阴影,不了解filter的可以

 现在离成功只差一步了,利用css3的旋转让心形摆正,我们重新完善 heart 样式

.heart{
width: 200px; height: 200px; background: #f00; position: relative; filter:drop-shadow(0px 0px 20px rgb(255,20,20)); transform: rotate(45deg); }

现在我们可以看一下到目前我们的成果是什么样的:

 由于旋转后心形的外观发生了一点变化,如下图,我们再次对 heart 的宽和高样式进行调整

.heart{
width: 198px; height: 198px; background: #f00; position: relative; filter:drop-shadow(0px 0px 20px rgb(255,20,20)); transform: rotate(45deg); }

调整后的效果:

现在我们就给心形加上心跳的动画,分析心跳的状态,它是由放大和缩小两者交替循环播放的~

使用css3的 keyframes 再配合css3的缩放 scale 就可以实现心跳的效果,这里需要注意的一点是如果你 heart 样式有旋转 rotate 的代码,在keyframes动画中也需要添加上

代码如下:

@keyframes heartbeat{
0%{transform: rotate(45deg) scale(0.8,0.8); opacity: 1;} 25%{
transform: rotate(45deg) scale(1,1); opacity: 0.8;} 100%{
transform: rotate(45deg) scale(0.8,0.8); opacity: 1;}}

终于大功告成了! 看一下我们最终的效果:

 

 

下面简单介绍一下另一种方法

方案二:两个长方形(比例是2:3 | 3:2)

其实这两种方案都差不多,思路已提供有兴趣的可以自己动手写一下~

明天就是情人节了,预祝大家情人节快乐!

 

Your browser does not support the audio element.

转载于:https://www.cnblogs.com/HtmlCss3/p/6394396.html

你可能感兴趣的文章
Sublime Text 3 Build 3065 License key 注册码 秘钥
查看>>
AngularJS中transclude用法详解
查看>>
Sliding Menu Demos 浅析:Sliding Title Bar 与 Sliding Content Only
查看>>
java利用freemarker导出world
查看>>
简单的弹出拖拽窗口(二)
查看>>
LeetCode题解之 Assign Cookies
查看>>
第八周编程总结
查看>>
Java-----思想认识
查看>>
ASP.NET - TreeView控件,只操作最后一级节点
查看>>
设计模式示例系列随笔
查看>>
HTTP协议概述
查看>>
Available to Promise (ATP) in SAP-SD
查看>>
Google Talk
查看>>
Spring 之注解事务 @Transactional
查看>>
ArrayList,LinkedList的对比
查看>>
eclipse 最简单的方法 显示行号
查看>>
Winform应用ssk皮肤
查看>>
Java实现二叉树先序,中序,后序遍历
查看>>
Hello World
查看>>
java 打印栈信息
查看>>