CSS3小可爱亲吻表白特效,给你的五一假期增添点小乐趣

news/2025/1/15 15:14:11/

马上五一假期了,小伙伴们是不是都准备出去旅游呢,或者回老家陪陪父母。今天我用CSS3制作一个小可爱亲吻表白的特效,来给你即将到来的五一假期增添点小小的乐趣。

 

 

目录

实现思路

左边小可爱的实现

右边小可爱的实现

左右摇摆动效的实现

右边小嘴儿的动态效果实现

完整源代码

最后


实现思路

会有左右两个元素分别分别表示这2个小可爱;

然后会添加一定的圆角,定位来实现眼睛,嘴,和脸夹的效果;

通过左右2个小可爱的动画,利用animation动画实现左右摇摆的特效;

最后就是右边的小可爱撅起小嘴儿的可爱特效,我们开始吧。

左边小可爱的实现

通过border-radius的CSS3属性,设定50%的属性值,将脸庞设置为原型,class类为.face,然后利用:before:after实现脸夹的小椭圆,然后是眼睛,通过设置width和height的宽高比例,再加上一定的圆角度数,来实现弯弯起的效果,嘴角也同样的一样的设置,HTML代码如下:

<div id='l-ball' class='ball'><div class='face face-l'><div class='eye eye-l'></div><div class='eye eye-r'></div><div class='mouth'></div></div></div>

效果图如下

 

右边小可爱的实现

左边和右边的实现大体思路相同,但是左边和右边的小可爱存在对称性一个朝右一个朝左,所以与左边小可爱不同的是控制position定位的不同,大家也可以根据自己的喜好,修改定位,修改色值。

但右侧的小可爱明显扮演了主动的一方,所以眼角和嘴角也略有不同,脸夹的红晕也会有所不同,这些都是border-radius的不断修改参数值进行控制,代码如下:

<div id='r-ball' class='ball'><div class='face face-r'><div class='eye eye-l eye-r-p'></div><div class='eye eye-r eye-r-p'></div><div class='mouth mouth-r'></div><div class='kiss-m'><div class='kiss'></div><div class='kiss'></div></div></div></div><!-- CSS3代码 -->
.face-r{left:0;top:37px;
}.face-r:after{width:10px;height:10px;left:5px;
}.face-r:before{width:10px;height:10px;right:-4px;
}
.eye{width:15px;height:14px;border-radius:50%;border-bottom:5px solid;position:absolute;
}.eye-r-p{border-top:5px solid;border-bottom:0px solid;
}.eye-l{left:10px;
}.eye-r{right:5px;
}

左右摇摆动效的实现

两个小可爱不停左右摇摆,这里主要使用了animation动画,来控制左右的位置,而且左侧的小可爱为了实现自己的小脸儿前后拧动的效果,也会有一个动画改变其transform的属性效果,CSS3代码如下:

@keyframes close{0%{transform:translate(0)}20%{transform:translate(20px)}35%{transform:translate(20px)}55%{transform:translate(0px)}100%{transform:translate(0px)}
}@keyframes face{0%{transform:translate(0) rotate(0);}10%{transform:translate(0) rotate(0);}20%{transform:translate(5px) rotate(-2deg);}28%{transform:translate(0) rotate(0);}35%{transform:translate(5px) rotate(-2deg);}50%{transform:translate(0) rotate(0);}100%{transform:translate(0) rotate(0);}
}

 

 

右边小嘴儿的动态效果实现

这里先是由一个半圆角的嘴形状,然后变为两个小上下的形状,可通过改变background的属性来设置2个小嘴的末端色值,然后再通过animation的类动画来有个渐变,上下的效果。然后再通过让2个小可爱不断改变位置,达到表白的效果。当然,这里border-radius的合理设置也必不可少,CSS3代码如下:

.kiss-m{position:absolute;left:20px;top:22px;opacity:0;animation:kiss-m 4s ease infinite;
}@keyframes kiss-m{0%{opacity:0;}55%{opacity:0;}55.1%{opacity:1;}66%{opacity:1;}66.1%{opacity:0;}
}

完整源代码

小伙伴们可以如果看了上面的讲解还不是很清楚,可以直接复制下方源代码,放到自己的HTML文档里即可,然后用浏览器打开,就可以看见效果啦,完整源代码如下:

<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="UTF-8">
<title>CSS3表白特效</title><style>body{background-color: red;margin:0;
}.container{margin: auto;position: absolute;top: 50%; left: 50%;-webkit-transform: translate(-50%,-50%);-ms-transform: translate(-50%,-50%);transform: translate(-50%,-50%);width:248px;
}.face{width:70px;height:30px;position:absolute;right:0;top:30px;border-top-right-radius:15px;
}#r-ball{animation: kiss 4s ease infinite;background-color:#FD4;
}@keyframes kiss{40%{transform:translate(0px);}50%{transform:translate(30px) rotate(20deg);}60%{transform:translate(-33px);}67%{transform:translate(-33px);}77%{transform:translate(0px);}
}.kiss{background-color:red;width:13px;height:10px;background-color:#FD4;border-radius:50%;border-left:5px solid;
}.kiss-m{position:absolute;left:20px;top:22px;opacity:0;animation:kiss-m 4s ease infinite;
}@keyframes kiss-m{0%{opacity:0;}55%{opacity:0;}55.1%{opacity:1;}66%{opacity:1;}66.1%{opacity:0;}
}.mouth-r{animation:mouth-m 4s ease infinite;
}@keyframes mouth-m{0%{opacity:1;}54.9%{opacity:1;}55%{opacity:0;}66%{opacity:0;}66.1%{opacity:1;}
}.face:after{position:absolute;content:"";width:18px;height:8px;background-color:#badc58;left:-5px;top:20px;border-radius:50%;
}.face:before{position:absolute;content:"";width:18px;height:8px;background-color:#badc58;right:-8px;top:20px;border-radius:50%;z-index:-1;
}.face-r{left:0;top:37px;
}.face-r:after{width:10px;height:10px;left:5px;
}.face-r:before{width:10px;height:10px;right:-4px;
}
.eye{width:15px;height:14px;border-radius:50%;border-bottom:5px solid;position:absolute;
}.eye-r-p{border-top:5px solid;border-bottom:0px solid;
}.eye-l{left:10px;
}.eye-r{right:5px;
}.mouth{width:30px;height:14px;border-radius:50%;border-bottom:5px solid;position:absolute;bottom:-5px;transform:translate(3px);left:0;right:0;margin: auto;
}.ball{border: 8px solid;width:100px;height:100px;border-radius:50%;display:inline-block;vertical-align:top;position:relative;
}#r-ball{position:relative;z-index:40;
}#l-ball{animation: close 4s ease infinite;position:relative;z-index:50;background-color:#FD4;
}.face-l{animation: face 4s ease infinite;
}@keyframes close{0%{transform:translate(0)}20%{transform:translate(20px)}35%{transform:translate(20px)}55%{transform:translate(0px)}100%{transform:translate(0px)}
}@keyframes face{0%{transform:translate(0) rotate(0);}10%{transform:translate(0) rotate(0);}20%{transform:translate(5px) rotate(-2deg);}28%{transform:translate(0) rotate(0);}35%{transform:translate(5px) rotate(-2deg);}50%{transform:translate(0) rotate(0);}100%{transform:translate(0) rotate(0);}
}</style></head>
<body><div class='container'><div id='l-ball' class='ball'><div class='face face-l'><div class='eye eye-l'></div><div class='eye eye-r'></div><div class='mouth'></div></div></div><div id='r-ball' class='ball'><div class='face face-r'><div class='eye eye-l eye-r-p'></div><div class='eye eye-r eye-r-p'></div><div class='mouth mouth-r'></div><div class='kiss-m'><div class='kiss'></div><div class='kiss'></div></div></div></div>
</div></body>
</html>

最后

希望你可以喜欢这个CSS3实现的小可爱表白小特效,祝福大家的生活像这对小可爱一样,和和美美,幸福健康,开心快乐。也祝福小伙伴们在即将到了五一假期可以快乐,开心,健康的玩耍。下面我给大家准备了一个非常有意思的投票,请喜欢的小伙伴投个票吧。


http://www.ppmy.cn/news/52348.html

相关文章

js截取网址参数值方法

一般分为两种网址截取方法&#xff1a; 第一种&#xff0c;例如链接&#xff1a;http://192.168.32.135:9020/#/authentication/Login?toeknceshi token 值出现在 URL 的 hash 部分,所以你需要使用 window.location.hash 来获取 hash 部分&#xff0c;然后使用 URLSearchPara…

API 都有这些功能,你真的都知道么?

API&#xff08;应用程序编程接口&#xff09;可以提供以下功能&#xff1a; 数据传输&#xff1a;API可以在应用程序之间传输数据&#xff0c;包括发送和获取数据、更新数据等。 访问功能: API 可以调用另一个系统或应用程序的某些功能&#xff0c;例如获取天气&#xff0c;查…

PXE 网络安装Linux ——Kickstart无人值守安装Linux

PXE&#xff08;预启动执行环境&#xff09; PXE&#xff08;预启动执行环境&#xff09; 由Intel公司开发的网络引导技术&#xff0c;工作在Client/Server模式&#xff0c;允许客户机通过网络从远程服务器下载引导镜像&#xff0c;并加载安装文件或者整个操作系统。 PXE具备以…

Oracle Linux 9 上基于 Docker 安装 Kubernetes 1.27 集群

Oracle Linux 9 上基于 Docker 安装 Kubernetes 1.27 集群 1. 禁用swap2. 禁用防火墙3. 将SELinux设置为permissive模式4. 添加网桥过滤及内核转发配置文件5. 加载 overlay、br_netfilter、ip_tables、iptable_filter 模块6. 安装 docker-ce7. 安装kubelet kubeadm kubectl8. 初…

力扣刷题——移除元素

1、移除元素 给你一个数组 nums 和一个值 val&#xff0c;你需要 原地 移除所有数值等于 val 的元素&#xff0c;并返回移除后数组的新长度。 不要使用额外的数组空间&#xff0c;你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑数组中…

不部署服务端调用接口,前端接口神器json-server

简介 json-server 是一款小巧的接口模拟工具&#xff0c;一分钟内就能搭建一套 Restful 风格的 API&#xff0c;尤其适合前端接口测试使用。 只需指定一个 json 文件作为 api 的数据源即可&#xff0c;使用起来非常方便&#xff0c;30秒入门&#xff0c;基本上有手就行。 进阶…

JS笔试题精讲3 ES6专题

只要拼接字符串 一律用 模板字符串 ${} 里: - 可以放: 变量、算术计算、三目、对象属性、创建对象、调用 函数、访问数组元素——有返回值的合法的js表达式 - 不能放: 没有返回值的js表达式也不能放分支/判断、循环等程序结构。比如: if else for while...等 ${}规则和今后…

如何使用ESP32-CAM构建一个人脸识别系统

有许多人识别系统使用签名、指纹、语音、手部几何、人脸识别等来识别人&#xff0c;但除了人脸识别系统。 人脸识别系统不仅可以用于安全目的来识别公共场所的人员&#xff0c;还可以用于办公室和学校的考勤目的。 在这个项目中&#xff0c;我们将使用 ESP32-CAM 构建一个人脸识…