0


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

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

实现思路

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

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

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

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

左边小可爱的实现

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

  1. <div id='l-ball' class='ball'>
  2. <div class='face face-l'>
  3. <div class='eye eye-l'></div>
  4. <div class='eye eye-r'></div>
  5. <div class='mouth'></div>
  6. </div>
  7. </div>

效果图如下

右边小可爱的实现

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

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

  1. <div id='r-ball' class='ball'>
  2. <div class='face face-r'>
  3. <div class='eye eye-l eye-r-p'></div>
  4. <div class='eye eye-r eye-r-p'></div>
  5. <div class='mouth mouth-r'></div>
  6. <div class='kiss-m'>
  7. <div class='kiss'></div>
  8. <div class='kiss'></div>
  9. </div>
  10. </div>
  11. </div>
  12. <!-- CSS3代码 -->
  13. .face-r{
  14. left:0;
  15. top:37px;
  16. }
  17. .face-r:after{
  18. width:10px;
  19. height:10px;
  20. left:5px;
  21. }
  22. .face-r:before{
  23. width:10px;
  24. height:10px;
  25. right:-4px;
  26. }
  27. .eye{
  28. width:15px;
  29. height:14px;
  30. border-radius:50%;
  31. border-bottom:5px solid;
  32. position:absolute;
  33. }
  34. .eye-r-p{
  35. border-top:5px solid;
  36. border-bottom:0px solid;
  37. }
  38. .eye-l{
  39. left:10px;
  40. }
  41. .eye-r{
  42. right:5px;
  43. }

左右摇摆动效的实现

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

  1. @keyframes close{
  2. 0%{transform:translate(0)}
  3. 20%{transform:translate(20px)}
  4. 35%{transform:translate(20px)}
  5. 55%{transform:translate(0px)}
  6. 100%{transform:translate(0px)}
  7. }
  8. @keyframes face{
  9. 0%{transform:translate(0) rotate(0);}
  10. 10%{transform:translate(0) rotate(0);}
  11. 20%{transform:translate(5px) rotate(-2deg);}
  12. 28%{transform:translate(0) rotate(0);}
  13. 35%{transform:translate(5px) rotate(-2deg);}
  14. 50%{transform:translate(0) rotate(0);}
  15. 100%{transform:translate(0) rotate(0);}
  16. }

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

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

  1. .kiss-m{
  2. position:absolute;
  3. left:20px;
  4. top:22px;
  5. opacity:0;
  6. animation:kiss-m 4s ease infinite;
  7. }
  8. @keyframes kiss-m{
  9. 0%{opacity:0;}
  10. 55%{opacity:0;}
  11. 55.1%{opacity:1;}
  12. 66%{opacity:1;}
  13. 66.1%{opacity:0;}
  14. }

完整源代码

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

  1. <!DOCTYPE html>
  2. <html lang="en" >
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>CSS3表白特效</title>
  6. <style>
  7. body{
  8. background-color: red;
  9. margin:0;
  10. }
  11. .container{
  12. margin: auto;
  13. position: absolute;
  14. top: 50%; left: 50%;
  15. -webkit-transform: translate(-50%,-50%);
  16. -ms-transform: translate(-50%,-50%);
  17. transform: translate(-50%,-50%);
  18. width:248px;
  19. }
  20. .face{
  21. width:70px;
  22. height:30px;
  23. position:absolute;
  24. right:0;
  25. top:30px;
  26. border-top-right-radius:15px;
  27. }
  28. #r-ball{
  29. animation: kiss 4s ease infinite;
  30. background-color:#FD4;
  31. }
  32. @keyframes kiss{
  33. 40%{transform:translate(0px);}
  34. 50%{transform:translate(30px) rotate(20deg);}
  35. 60%{transform:translate(-33px);}
  36. 67%{transform:translate(-33px);}
  37. 77%{transform:translate(0px);}
  38. }
  39. .kiss{
  40. background-color:red;
  41. width:13px;
  42. height:10px;
  43. background-color:#FD4;
  44. border-radius:50%;
  45. border-left:5px solid;
  46. }
  47. .kiss-m{
  48. position:absolute;
  49. left:20px;
  50. top:22px;
  51. opacity:0;
  52. animation:kiss-m 4s ease infinite;
  53. }
  54. @keyframes kiss-m{
  55. 0%{opacity:0;}
  56. 55%{opacity:0;}
  57. 55.1%{opacity:1;}
  58. 66%{opacity:1;}
  59. 66.1%{opacity:0;}
  60. }
  61. .mouth-r{
  62. animation:mouth-m 4s ease infinite;
  63. }
  64. @keyframes mouth-m{
  65. 0%{opacity:1;}
  66. 54.9%{opacity:1;}
  67. 55%{opacity:0;}
  68. 66%{opacity:0;}
  69. 66.1%{opacity:1;}
  70. }
  71. .face:after{
  72. position:absolute;
  73. content:"";
  74. width:18px;
  75. height:8px;
  76. background-color:#badc58;
  77. left:-5px;
  78. top:20px;
  79. border-radius:50%;
  80. }
  81. .face:before{
  82. position:absolute;
  83. content:"";
  84. width:18px;
  85. height:8px;
  86. background-color:#badc58;
  87. right:-8px;
  88. top:20px;
  89. border-radius:50%;
  90. z-index:-1;
  91. }
  92. .face-r{
  93. left:0;
  94. top:37px;
  95. }
  96. .face-r:after{
  97. width:10px;
  98. height:10px;
  99. left:5px;
  100. }
  101. .face-r:before{
  102. width:10px;
  103. height:10px;
  104. right:-4px;
  105. }
  106. .eye{
  107. width:15px;
  108. height:14px;
  109. border-radius:50%;
  110. border-bottom:5px solid;
  111. position:absolute;
  112. }
  113. .eye-r-p{
  114. border-top:5px solid;
  115. border-bottom:0px solid;
  116. }
  117. .eye-l{
  118. left:10px;
  119. }
  120. .eye-r{
  121. right:5px;
  122. }
  123. .mouth{
  124. width:30px;
  125. height:14px;
  126. border-radius:50%;
  127. border-bottom:5px solid;
  128. position:absolute;
  129. bottom:-5px;
  130. transform:translate(3px);
  131. left:0;
  132. right:0;
  133. margin: auto;
  134. }
  135. .ball{
  136. border: 8px solid;
  137. width:100px;
  138. height:100px;
  139. border-radius:50%;
  140. display:inline-block;
  141. vertical-align:top;
  142. position:relative;
  143. }
  144. #r-ball{
  145. position:relative;
  146. z-index:40;
  147. }
  148. #l-ball{
  149. animation: close 4s ease infinite;
  150. position:relative;
  151. z-index:50;
  152. background-color:#FD4;
  153. }
  154. .face-l{
  155. animation: face 4s ease infinite;
  156. }
  157. @keyframes close{
  158. 0%{transform:translate(0)}
  159. 20%{transform:translate(20px)}
  160. 35%{transform:translate(20px)}
  161. 55%{transform:translate(0px)}
  162. 100%{transform:translate(0px)}
  163. }
  164. @keyframes face{
  165. 0%{transform:translate(0) rotate(0);}
  166. 10%{transform:translate(0) rotate(0);}
  167. 20%{transform:translate(5px) rotate(-2deg);}
  168. 28%{transform:translate(0) rotate(0);}
  169. 35%{transform:translate(5px) rotate(-2deg);}
  170. 50%{transform:translate(0) rotate(0);}
  171. 100%{transform:translate(0) rotate(0);}
  172. }
  173. </style>
  174. </head>
  175. <body>
  176. <div class='container'>
  177. <div id='l-ball' class='ball'>
  178. <div class='face face-l'>
  179. <div class='eye eye-l'></div>
  180. <div class='eye eye-r'></div>
  181. <div class='mouth'></div>
  182. </div>
  183. </div>
  184. <div id='r-ball' class='ball'>
  185. <div class='face face-r'>
  186. <div class='eye eye-l eye-r-p'></div>
  187. <div class='eye eye-r eye-r-p'></div>
  188. <div class='mouth mouth-r'></div>
  189. <div class='kiss-m'>
  190. <div class='kiss'></div>
  191. <div class='kiss'></div>
  192. </div>
  193. </div>
  194. </div>
  195. </div>
  196. </body>
  197. </html>

最后

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

标签: css3 前端 css

本文转载自: https://blog.csdn.net/xingyu_qie/article/details/130405181
版权归原作者 经海路大白狗 所有, 如有侵权,请联系我们删除。

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

还没有评论