HTML5制作3D爱心动画教程 献给女友浪漫的礼物
程序员文章站
2023-11-13 08:00:27
这篇文章主要为大家介绍了一个利用HTML5和CSS3制作的3D爱心动画的教程,可以再任何的时间地点送给自己的女友,相当的浪漫,关键是代码相当简单,直接复制也可以哦... 14-11-05...
谁说程序员不懂得浪漫,看看程序员是怎么浪漫的,今天小编在国外的网站上看到一个利用html5和css3制作的3d爱心动画,在情人节时送给心爱的人,还是非常不错的。当然了。背景我们可以用一些浪漫元素。如加上女朋友漂亮的照片。这样可以制作一个廉价又很有意义的情人节礼物。大家可以点解demo来看看。先上效果图:
实现代码如下:
html代码:
xml/html code复制内容到剪贴板
- <div class=’heart3d’>
- <div class=’rib1′></div>
- <div class=’rib2′></div>
- <div class=’rib3′></div>
- <div class=’rib4′></div>
- <div class=’rib5′></div>
- <div class=’rib6′></div>
- <div class=’rib7′></div>
- <div class=’rib8′></div>
- <div class=’rib9′></div>
- <div class=’rib10′></div>
- <div class=’rib11′></div>
- <div class=’rib12′></div>
- <div class=’rib13′></div>
- <div class=’rib14′></div>
- <div class=’rib15′></div>
- <div class=’rib16′></div>
- <div class=’rib17′></div>
- <div class=’rib18′></div>
- <div class=’rib19′></div>
- <div class=’rib20′></div>
- <div class=’rib21′></div>
- <div class=’rib22′></div>
- <div class=’rib23′></div>
- <div class=’rib24′></div>
- <div class=’rib25′></div>
- <div class=’rib26′></div>
- <div class=’rib27′></div>
- <div class=’rib28′></div>
- <div class=’rib29′></div>
- <div class=’rib30′></div>
- <div class=’rib31′></div>
- <div class=’rib32′></div>
- <div class=’rib33′></div>
- <div class=’rib34′></div>
- <div class=’rib35′></div>
- <div class=’rib36′></div>
- </div>
这么多div,主要是构造爱心的线条区域。
css代码:
css code复制内容到剪贴板
- .heart3d {
- position: absolute;
- top: 0;
- rightright: 0;
- bottombottom: 0;
- left: 0;
- margin: auto;
- width: 100px;
- height: 160px;
- -webkit-transform-style: preserve-3d;
- transform-style: preserve-3d;
- -webkit-animation: spin 15s infinite linear;
- animation: spin 15s infinite linear;
- }
- .heart3d [class^="rib"] {
- position: absolute;
- width: 100px;
- height: 160px;
- border: solid #f22613;
- border-width: 1px 1px 0 0;
- border-radius: 50% 50% 0 / 40% 50% 0;
- }
- .heart3d [class$="1"] {
- -webkit-transform: rotatey(10deg) rotatez(45deg) translatex(30px);
- transform: rotatey(10deg) rotatez(45deg) translatex(30px);
- }
- .heart3d [class$="2"] {
- -webkit-transform: rotatey(20deg) rotatez(45deg) translatex(30px);
- transform: rotatey(20deg) rotatez(45deg) translatex(30px);
- }
- .heart3d [class$="3"] {
- -webkit-transform: rotatey(30deg) rotatez(45deg) translatex(30px);
- transform: rotatey(30deg) rotatez(45deg) translatex(30px);
- }
- .heart3d [class$="4"] {
- -webkit-transform: rotatey(40deg) rotatez(45deg) translatex(30px);
- transform: rotatey(40deg) rotatez(45deg) translatex(30px);
- }
- .heart3d [class$="5"] {
- -webkit-transform: rotatey(50deg) rotatez(45deg) translatex(30px);
- transform: rotatey(50deg) rotatez(45deg) translatex(30px);
- }
- .heart3d [class$="6"] {
- -webkit-transform: rotatey(60deg) rotatez(45deg) translatex(30px);
- transform: rotatey(60deg) rotatez(45deg) translatex(30px);
- }
- .heart3d [class$="7"] {
- -webkit-transform: rotatey(70deg) rotatez(45deg) translatex(30px);
- transform: rotatey(70deg) rotatez(45deg) translatex(30px);
- }
- .heart3d [class$="8"] {
- -webkit-transform: rotatey(80deg) rotatez(45deg) translatex(30px);
- transform: rotatey(80deg) rotatez(45deg) translatex(30px);
- }
- .heart3d [class$="9"] {
- -webkit-transform: rotatey(90deg) rotatez(45deg) translatex(30px);
- transform: rotatey(90deg) rotatez(45deg) translatex(30px);
- }
- .heart3d [class$="10"] {
- -webkit-transform: rotatey(100deg) rotatez(45deg) translatex(30px);
- transform: rotatey(100deg) rotatez(45deg) translatex(30px);
- }
- .heart3d [class$="11"] {
- -webkit-transform: rotatey(110deg) rotatez(45deg) translatex(30px);
- transform: rotatey(110deg) rotatez(45deg) translatex(30px);
- }
- .heart3d [class$="12"] {
- -webkit-transform: rotatey(120deg) rotatez(45deg) translatex(30px);
- transform: rotatey(120deg) rotatez(45deg) translatex(30px);
- }
- .heart3d [class$="13"] {
- -webkit-transform: rotatey(130deg) rotatez(45deg) translatex(30px);
- transform: rotatey(130deg) rotatez(45deg) translatex(30px);
- }
- .heart3d [class$="14"] {
- -webkit-transform: rotatey(140deg) rotatez(45deg) translatex(30px);
- transform: rotatey(140deg) rotatez(45deg) translatex(30px);
- }
- .heart3d [class$="15"] {
- -webkit-transform: rotatey(150deg) rotatez(45deg) translatex(30px);
- transform: rotatey(150deg) rotatez(45deg) translatex(30px);
- }
- .heart3d [class$="16"] {
- -webkit-transform: rotatey(160deg) rotatez(45deg) translatex(30px);
- transform: rotatey(160deg) rotatez(45deg) translatex(30px);
- }
- .heart3d [class$="17"] {
- -webkit-transform: rotatey(170deg) rotatez(45deg) translatex(30px);
- transform: rotatey(170deg) rotatez(45deg) translatex(30px);
- }
- .heart3d [class$="18"] {
- -webkit-transform: rotatey(180deg) rotatez(45deg) translatex(30px);
- transform: rotatey(180deg) rotatez(45deg) translatex(30px);
- }
- .heart3d [class$="19"] {
- -webkit-transform: rotatey(190deg) rotatez(45deg) translatex(30px);
- transform: rotatey(190deg) rotatez(45deg) translatex(30px);
- }
- .heart3d [class$="20"] {
- -webkit-transform: rotatey(200deg) rotatez(45deg) translatex(30px);
- transform: rotatey(200deg) rotatez(45deg) translatex(30px);
- }
- .heart3d [class$="21"] {
- -webkit-transform: rotatey(210deg) rotatez(45deg) translatex(30px);
- transform: rotatey(210deg) rotatez(45deg) translatex(30px);
- }
- .heart3d [class$="22"] {
- -webkit-transform: rotatey(220deg) rotatez(45deg) translatex(30px);
- transform: rotatey(220deg) rotatez(45deg) translatex(30px);
- }
- .heart3d [class$="23"] {
- -webkit-transform: rotatey(230deg) rotatez(45deg) translatex(30px);
- transform: rotatey(230deg) rotatez(45deg) translatex(30px);
- }
- .heart3d [class$="24"] {
- -webkit-transform: rotatey(240deg) rotatez(45deg) translatex(30px);
- transform: rotatey(240deg) rotatez(45deg) translatex(30px);
- }
- .heart3d [class$="25"] {
- -webkit-transform: rotatey(250deg) rotatez(45deg) translatex(30px);
- transform: rotatey(250deg) rotatez(45deg) translatex(30px);
- }
- .heart3d [class$="26"] {
- -webkit-transform: rotatey(260deg) rotatez(45deg) translatex(30px);
- transform: rotatey(260deg) rotatez(45deg) translatex(30px);
- }
- .heart3d [class$="27"] {
- -webkit-transform: rotatey(270deg) rotatez(45deg) translatex(30px);
- transform: rotatey(270deg) rotatez(45deg) translatex(30px);
- }
- .heart3d [class$="28"] {
- -webkit-transform: rotatey(280deg) rotatez(45deg) translatex(30px);
- transform: rotatey(280deg) rotatez(45deg) translatex(30px);
- }
- .heart3d [class$="29"] {
- -webkit-transform: rotatey(290deg) rotatez(45deg) translatex(30px);
- transform: rotatey(290deg) rotatez(45deg) translatex(30px);
- }
- .heart3d [class$="30"] {
- -webkit-transform: rotatey(300deg) rotatez(45deg) translatex(30px);
- transform: rotatey(300deg) rotatez(45deg) translatex(30px);
- }
- .heart3d [class$="31"] {
- -webkit-transform: rotatey(310deg) rotatez(45deg) translatex(30px);
- transform: rotatey(310deg) rotatez(45deg) translatex(30px);
- }
- .heart3d [class$="32"] {
- -webkit-transform: rotatey(320deg) rotatez(45deg) translatex(30px);
- transform: rotatey(320deg) rotatez(45deg) translatex(30px);
- }
- .heart3d [class$="33"] {
- -webkit-transform: rotatey(330deg) rotatez(45deg) translatex(30px);
- transform: rotatey(330deg) rotatez(45deg) translatex(30px);
- }
- .heart3d [class$="34"] {
- -webkit-transform: rotatey(340deg) rotatez(45deg) translatex(30px);
- transform: rotatey(340deg) rotatez(45deg) translatex(30px);
- }
- .heart3d [class$="35"] {
- -webkit-transform: rotatey(350deg) rotatez(45deg) translatex(30px);
- transform: rotatey(350deg) rotatez(45deg) translatex(30px);
- }
- .heart3d [class$="36"] {
- -webkit-transform: rotatey(360deg) rotatez(45deg) translatex(30px);
- transform: rotatey(360deg) rotatez(45deg) translatex(30px);
- }
对这些线条进行渲染,以便其有3d的视觉效果。
然后定义了一组名称为spin的html5动画:
css code复制内容到剪贴板
- @-webkit-keyframes spin {
- to {
- -webkit-transform: rotatey(360deg) rotatex(360deg);
- transform: rotatey(360deg) rotatex(360deg);
- }
- }
- @keyframes spin {
- to {
- -webkit-transform: rotatey(360deg) rotatex(360deg);
- transform: rotatey(360deg) rotatex(360deg);
- }
- }
以上就是html代码和css代码实现的3d爱心动画效果,浪漫的小伙子可以试着学习一下哦,又get一个交友技能,谢谢阅读,希望能帮到大家,请继续关注,我们会努力分享更多优秀的文章。