HTML5制作3D爱心动画教程 献给女友浪漫的礼物


Posted in HTML / CSS onNovember 05, 2014

谁说程序员不懂得浪漫,看看程序员是怎么浪漫的,今天小编在国外的网站上看到一个利用HTML5和CSS3制作的3D爱心动画,在情人节时送给心爱的人,还是非常不错的。当然了。背景我们可以用一些浪漫元素。如加上女朋友漂亮的照片。这样可以制作一个廉价又很有意义的情人节礼物。大家可以点解DEMO来看看。先上效果图:

HTML5制作3D爱心动画教程 献给女友浪漫的礼物

实现代码如下:

html代码:

XML/HTML Code复制内容到剪贴板
  1. <div class=’heart3d’>  
  2. <div class=’rib1′></div>  
  3. <div class=’rib2′></div>  
  4. <div class=’rib3′></div>  
  5. <div class=’rib4′></div>  
  6. <div class=’rib5′></div>  
  7. <div class=’rib6′></div>  
  8. <div class=’rib7′></div>  
  9. <div class=’rib8′></div>  
  10. <div class=’rib9′></div>  
  11. <div class=’rib10′></div>  
  12. <div class=’rib11′></div>  
  13. <div class=’rib12′></div>  
  14. <div class=’rib13′></div>  
  15. <div class=’rib14′></div>  
  16. <div class=’rib15′></div>  
  17. <div class=’rib16′></div>  
  18. <div class=’rib17′></div>  
  19. <div class=’rib18′></div>  
  20. <div class=’rib19′></div>  
  21. <div class=’rib20′></div>  
  22. <div class=’rib21′></div>  
  23. <div class=’rib22′></div>  
  24. <div class=’rib23′></div>  
  25. <div class=’rib24′></div>  
  26. <div class=’rib25′></div>  
  27. <div class=’rib26′></div>  
  28. <div class=’rib27′></div>  
  29. <div class=’rib28′></div>  
  30. <div class=’rib29′></div>  
  31. <div class=’rib30′></div>  
  32. <div class=’rib31′></div>  
  33. <div class=’rib32′></div>  
  34. <div class=’rib33′></div>  
  35. <div class=’rib34′></div>  
  36. <div class=’rib35′></div>  
  37. <div class=’rib36′></div>  
  38. </div>  

这么多div,主要是构造爱心的线条区域。

CSS代码:

CSS Code复制内容到剪贴板
  1. .heart3d {   
  2.   positionabsolute;   
  3.   top: 0;   
  4.   rightright: 0;   
  5.   bottombottom: 0;   
  6.   left: 0;   
  7.   marginauto;   
  8.   width100px;   
  9.   height160px;   
  10.   -webkit-transform-style: preserve-3d;   
  11.   transform-style: preserve-3d;   
  12.   -webkit-animation: spin 15s infinite linear;   
  13.   animation: spin 15s infinite linear;   
  14. }   
  15. .heart3d [class^="rib"] {   
  16.   positionabsolute;   
  17.   width100px;   
  18.   height160px;   
  19.   bordersolid #f22613;   
  20.   border-width1px 1px 0 0;   
  21.   border-radius: 50% 50% 0 / 40% 50% 0;   
  22. }   
  23. .heart3d [class$="1"] {   
  24.   -webkit-transform: rotateY(10deg) rotateZ(45deg) translateX(30px);   
  25.   transform: rotateY(10deg) rotateZ(45deg) translateX(30px);   
  26. }   
  27. .heart3d [class$="2"] {   
  28.   -webkit-transform: rotateY(20deg) rotateZ(45deg) translateX(30px);   
  29.   transform: rotateY(20deg) rotateZ(45deg) translateX(30px);   
  30. }   
  31. .heart3d [class$="3"] {   
  32.   -webkit-transform: rotateY(30deg) rotateZ(45deg) translateX(30px);   
  33.   transform: rotateY(30deg) rotateZ(45deg) translateX(30px);   
  34. }   
  35. .heart3d [class$="4"] {   
  36.   -webkit-transform: rotateY(40deg) rotateZ(45deg) translateX(30px);   
  37.   transform: rotateY(40deg) rotateZ(45deg) translateX(30px);   
  38. }   
  39. .heart3d [class$="5"] {   
  40.   -webkit-transform: rotateY(50deg) rotateZ(45deg) translateX(30px);   
  41.   transform: rotateY(50deg) rotateZ(45deg) translateX(30px);   
  42. }   
  43. .heart3d [class$="6"] {   
  44.   -webkit-transform: rotateY(60deg) rotateZ(45deg) translateX(30px);   
  45.   transform: rotateY(60deg) rotateZ(45deg) translateX(30px);   
  46. }   
  47. .heart3d [class$="7"] {   
  48.   -webkit-transform: rotateY(70deg) rotateZ(45deg) translateX(30px);   
  49.   transform: rotateY(70deg) rotateZ(45deg) translateX(30px);   
  50. }   
  51. .heart3d [class$="8"] {   
  52.   -webkit-transform: rotateY(80deg) rotateZ(45deg) translateX(30px);   
  53.   transform: rotateY(80deg) rotateZ(45deg) translateX(30px);   
  54. }   
  55. .heart3d [class$="9"] {   
  56.   -webkit-transform: rotateY(90deg) rotateZ(45deg) translateX(30px);   
  57.   transform: rotateY(90deg) rotateZ(45deg) translateX(30px);   
  58. }   
  59. .heart3d [class$="10"] {   
  60.   -webkit-transform: rotateY(100deg) rotateZ(45deg) translateX(30px);   
  61.   transform: rotateY(100deg) rotateZ(45deg) translateX(30px);   
  62. }   
  63. .heart3d [class$="11"] {   
  64.   -webkit-transform: rotateY(110deg) rotateZ(45deg) translateX(30px);   
  65.   transform: rotateY(110deg) rotateZ(45deg) translateX(30px);   
  66. }   
  67. .heart3d [class$="12"] {   
  68.   -webkit-transform: rotateY(120deg) rotateZ(45deg) translateX(30px);   
  69.   transform: rotateY(120deg) rotateZ(45deg) translateX(30px);   
  70. }   
  71. .heart3d [class$="13"] {   
  72.   -webkit-transform: rotateY(130deg) rotateZ(45deg) translateX(30px);   
  73.   transform: rotateY(130deg) rotateZ(45deg) translateX(30px);   
  74. }   
  75. .heart3d [class$="14"] {   
  76.   -webkit-transform: rotateY(140deg) rotateZ(45deg) translateX(30px);   
  77.   transform: rotateY(140deg) rotateZ(45deg) translateX(30px);   
  78. }   
  79. .heart3d [class$="15"] {   
  80.   -webkit-transform: rotateY(150deg) rotateZ(45deg) translateX(30px);   
  81.   transform: rotateY(150deg) rotateZ(45deg) translateX(30px);   
  82. }   
  83. .heart3d [class$="16"] {   
  84.   -webkit-transform: rotateY(160deg) rotateZ(45deg) translateX(30px);   
  85.   transform: rotateY(160deg) rotateZ(45deg) translateX(30px);   
  86. }   
  87. .heart3d [class$="17"] {   
  88.   -webkit-transform: rotateY(170deg) rotateZ(45deg) translateX(30px);   
  89.   transform: rotateY(170deg) rotateZ(45deg) translateX(30px);   
  90. }   
  91. .heart3d [class$="18"] {   
  92.   -webkit-transform: rotateY(180deg) rotateZ(45deg) translateX(30px);   
  93.   transform: rotateY(180deg) rotateZ(45deg) translateX(30px);   
  94. }   
  95. .heart3d [class$="19"] {   
  96.   -webkit-transform: rotateY(190deg) rotateZ(45deg) translateX(30px);   
  97.   transform: rotateY(190deg) rotateZ(45deg) translateX(30px);   
  98. }   
  99. .heart3d [class$="20"] {   
  100.   -webkit-transform: rotateY(200deg) rotateZ(45deg) translateX(30px);   
  101.   transform: rotateY(200deg) rotateZ(45deg) translateX(30px);   
  102. }   
  103. .heart3d [class$="21"] {   
  104.   -webkit-transform: rotateY(210deg) rotateZ(45deg) translateX(30px);   
  105.   transform: rotateY(210deg) rotateZ(45deg) translateX(30px);   
  106. }   
  107. .heart3d [class$="22"] {   
  108.   -webkit-transform: rotateY(220deg) rotateZ(45deg) translateX(30px);   
  109.   transform: rotateY(220deg) rotateZ(45deg) translateX(30px);   
  110. }   
  111. .heart3d [class$="23"] {   
  112.   -webkit-transform: rotateY(230deg) rotateZ(45deg) translateX(30px);   
  113.   transform: rotateY(230deg) rotateZ(45deg) translateX(30px);   
  114. }   
  115. .heart3d [class$="24"] {   
  116.   -webkit-transform: rotateY(240deg) rotateZ(45deg) translateX(30px);   
  117.   transform: rotateY(240deg) rotateZ(45deg) translateX(30px);   
  118. }   
  119. .heart3d [class$="25"] {   
  120.   -webkit-transform: rotateY(250deg) rotateZ(45deg) translateX(30px);   
  121.   transform: rotateY(250deg) rotateZ(45deg) translateX(30px);   
  122. }   
  123. .heart3d [class$="26"] {   
  124.   -webkit-transform: rotateY(260deg) rotateZ(45deg) translateX(30px);   
  125.   transform: rotateY(260deg) rotateZ(45deg) translateX(30px);   
  126. }   
  127. .heart3d [class$="27"] {   
  128.   -webkit-transform: rotateY(270deg) rotateZ(45deg) translateX(30px);   
  129.   transform: rotateY(270deg) rotateZ(45deg) translateX(30px);   
  130. }   
  131. .heart3d [class$="28"] {   
  132.   -webkit-transform: rotateY(280deg) rotateZ(45deg) translateX(30px);   
  133.   transform: rotateY(280deg) rotateZ(45deg) translateX(30px);   
  134. }   
  135. .heart3d [class$="29"] {   
  136.   -webkit-transform: rotateY(290deg) rotateZ(45deg) translateX(30px);   
  137.   transform: rotateY(290deg) rotateZ(45deg) translateX(30px);   
  138. }   
  139. .heart3d [class$="30"] {   
  140.   -webkit-transform: rotateY(300deg) rotateZ(45deg) translateX(30px);   
  141.   transform: rotateY(300deg) rotateZ(45deg) translateX(30px);   
  142. }   
  143. .heart3d [class$="31"] {   
  144.   -webkit-transform: rotateY(310deg) rotateZ(45deg) translateX(30px);   
  145.   transform: rotateY(310deg) rotateZ(45deg) translateX(30px);   
  146. }   
  147. .heart3d [class$="32"] {   
  148.   -webkit-transform: rotateY(320deg) rotateZ(45deg) translateX(30px);   
  149.   transform: rotateY(320deg) rotateZ(45deg) translateX(30px);   
  150. }   
  151. .heart3d [class$="33"] {   
  152.   -webkit-transform: rotateY(330deg) rotateZ(45deg) translateX(30px);   
  153.   transform: rotateY(330deg) rotateZ(45deg) translateX(30px);   
  154. }   
  155. .heart3d [class$="34"] {   
  156.   -webkit-transform: rotateY(340deg) rotateZ(45deg) translateX(30px);   
  157.   transform: rotateY(340deg) rotateZ(45deg) translateX(30px);   
  158. }   
  159. .heart3d [class$="35"] {   
  160.   -webkit-transform: rotateY(350deg) rotateZ(45deg) translateX(30px);   
  161.   transform: rotateY(350deg) rotateZ(45deg) translateX(30px);   
  162. }   
  163. .heart3d [class$="36"] {   
  164.   -webkit-transform: rotateY(360deg) rotateZ(45deg) translateX(30px);   
  165.   transform: rotateY(360deg) rotateZ(45deg) translateX(30px);   
  166. }  

对这些线条进行渲染,以便其有3D的视觉效果。

然后定义了一组名称为spin的HTML5动画

CSS Code复制内容到剪贴板
  1. @-webkit-keyframes spin {   
  2.   to {   
  3.     -webkit-transform: rotateY(360deg) rotateX(360deg);   
  4.     transform: rotateY(360deg) rotateX(360deg);   
  5.   }   
  6. }   
  7.   
  8. @keyframes spin {   
  9.   to {   
  10.     -webkit-transform: rotateY(360deg) rotateX(360deg);   
  11.     transform: rotateY(360deg) rotateX(360deg);   
  12.   }   
  13. }  

以上就是HTML代码和CSS代码实现的3D爱心动画效果,浪漫的小伙子可以试着学习一下哦,又get一个交友技能,谢谢阅读,希望能帮到大家,请继续关注三水点靠木,我们会努力分享更多优秀的文章。

HTML / CSS 相关文章推荐
css3实现波纹特效、H5实现动态波浪效果
Jan 31 HTML / CSS
举例详解CSS3中的Transition
Jul 15 HTML / CSS
详解CSS3中nth-child与nth-of-type的区别
Jan 05 HTML / CSS
使用CSS3实现字体颜色渐变的实现
Aug 10 HTML / CSS
使用Canvas操作像素的方法
Jun 14 HTML / CSS
详解HTML5中的manifest缓存使用
Sep 09 HTML / CSS
简单整理HTML5的基本特性和语法
Feb 18 HTML / CSS
详解canvas绘图时遇到的跨域问题
Mar 22 HTML / CSS
HTML5图片层叠的实现示例
Jul 07 HTML / CSS
AmazeUI底部导航栏与分享按钮的示例代码
Aug 18 HTML / CSS
使用CSS实现黑白格背景效果
Jun 01 HTML / CSS
使用CSS实现音波加载效果
May 07 HTML / CSS
html5 css3实例教程 一款html5和css3实现的小机器人走路动画
Oct 20 #HTML / CSS
实例教程 利用html5和css3打造一款创意404页面
Oct 20 #HTML / CSS
基于html5实现的图片墙效果
Oct 16 #HTML / CSS
html5版canvas自由拼图实例
Oct 15 #HTML / CSS
HTML5地理定位实例
Oct 15 #HTML / CSS
IE9对HTML5中部分属性不支持的原因分析
Oct 15 #HTML / CSS
使用 HTML5 Canvas 制作水波纹效果点击图片就会触发
Sep 15 #HTML / CSS
You might like
PHP http请求超时问题解决方案
2020/11/13 PHP
提升你网站水平的jQuery插件集合推荐
2011/04/19 Javascript
JS字符串累加Array不一定比字符串累加快(根据电脑配置)
2012/05/14 Javascript
JavaScript极简入门教程(一):基础篇
2014/10/25 Javascript
jQuery实现html元素拖拽
2015/07/21 Javascript
jQuery简单实现input文本框内灰色提示文本效果的方法
2015/12/02 Javascript
基于javascript实现全国省市二级联动下拉选择菜单
2016/01/28 Javascript
浅析Node.js实现HTTP文件下载
2016/08/05 Javascript
jQuery ui autocomplete选择列表被Bootstrap模态窗遮挡的完美解决方法
2016/09/23 Javascript
Jquery针对tr td的一些实用操作方法(必看篇)
2016/10/05 Javascript
微信小程序 视图容器组件的详解及实例代码
2017/01/19 Javascript
JavaScript两个变量交换值的实现方法
2017/03/01 Javascript
Vue在页面右上角实现可悬浮/隐藏的系统菜单
2018/05/04 Javascript
快速解决bootstrap下拉菜单无法隐藏的问题
2018/08/10 Javascript
vue自定v-model实现表单数据双向绑定问题
2018/09/03 Javascript
前端Electron新手入门教程详解
2019/06/21 Javascript
swiper Scrollbar滚动条组件详解
2019/09/08 Javascript
Python中给List添加元素的4种方法分享
2014/11/28 Python
Python封装shell命令实例分析
2015/05/05 Python
Python程序中设置HTTP代理
2016/11/06 Python
对python3 一组数值的归一化处理方法详解
2018/07/11 Python
Django 路由系统URLconf的使用
2018/10/11 Python
django 微信网页授权登陆的实现
2019/07/30 Python
解决Python列表字符不区分大小写的问题
2019/12/19 Python
基于Python生成个性二维码过程详解
2020/03/05 Python
浅谈tensorflow模型保存为pb的各种姿势
2020/05/25 Python
python 如何实现遗传算法
2020/09/22 Python
柒牌官方商城:中国男装优秀品牌
2017/06/30 全球购物
物理教育专业毕业生推荐信
2013/11/03 职场文书
厨师岗位职责
2013/11/12 职场文书
介绍信的写法
2015/01/31 职场文书
2015年妇产科工作总结
2015/05/18 职场文书
Python中的np.argmin()和np.argmax()函数用法
2021/06/02 Python
Python操作CSV格式文件的方法大全
2021/07/15 Python
netty 实现tomcat的示例代码
2022/06/05 Servers
2022年显卡天梯图(6月更新)
2022/06/17 数码科技