animation心形--表白

3 篇文章 0 订阅
1 篇文章 0 订阅
本文介绍了一种使用CSS3和JavaScript实现的3D心形线动画效果,该动画可以用于表白场景,通过旋转的心形图案和逐渐显示的表白文字,营造浪漫氛围。文章详细展示了如何设置CSS样式,包括心形的3D旋转、边框和颜色,以及如何使用JavaScript进行文字的逐字显示。
摘要由CSDN通过智能技术生成

                                                                             animation心形线  --   表白

*{margin:0px;padding:0px;}/*去除默认外边距、内边距*/
body{background:#000;}
.heart3d {
            position: absolute;
            top: 0;
            right: 0;
            bottom: 0;
            left: 0;
            margin: auto;
            width: 100px;
            height: 160px;
            transform-origin:center center;
            transform-style: preserve-3d;
            animation: spin 15s infinite linear;
        }
#display{
        width:500px;color:white;font-size:24px;white-space:normal;text-indent:55px;
        position:absolute;left:100px;top:100px;}
.heart3d [class^="rib"] {
            position: absolute;
            width: 100px;
            height: 160px;
            border: solid #f22613;
            border-width: 1px 1px 0;
            border-radius: 50% 50% 0 /40% 50% 0;
        }
.heart3d [class$="0"] {
            transform: rotateY(0deg) rotateZ(45deg) translateX(30px);
        }
.heart3d [class$="1"] {
            transform: rotateY(10deg) rotateZ(45deg) translateX(30px);
        }
.heart3d [class$="2"] {
            transform: rotateY(20deg) rotateZ(45deg) translateX(30px);
        }
.heart3d [class$="3"] {
            transform: rotateY(30deg) rotateZ(45deg) translateX(30px);
        }
.heart3d [class$="4"] {
            transform: rotateY(40deg) rotateZ(45deg) translateX(30px);
        }
.heart3d [class$="5"] {
            transform: rotateY(50deg) rotateZ(45deg) translateX(30px);
        }
.heart3d [class$="6"] {
            transform: rotateY(60deg) rotateZ(45deg) translateX(30px);
        }
.heart3d [class$="7"] {
            transform: rotateY(70deg) rotateZ(45deg) translateX(30px);
        }
.heart3d [class$="8"] {
            transform: rotateY(80deg) rotateZ(45deg) translateX(30px);
        }
.heart3d [class$="9"] {
            transform: rotateY(90deg) rotateZ(45deg) translateX(30px);
        }
.heart3d [class$="10"] {
            transform: rotateY(100deg) rotateZ(45deg) translateX(30px);
        }
.heart3d [class$="11"] {
            transform: rotateY(110deg) rotateZ(45deg) translateX(30px);
        }
.heart3d [class$="12"] {
            transform: rotateY(120deg) rotateZ(45deg) translateX(30px);
        }
.heart3d [class$="13"] {
            transform: rotateY(130deg) rotateZ(45deg) translateX(30px);
        }
 .heart3d [class$="14"] {
            transform: rotateY(140deg) rotateZ(45deg) translateX(30px);
        }
 .heart3d [class$="15"] {
            transform: rotateY(150deg) rotateZ(45deg) translateX(30px);
        }
.heart3d [class$="16"] {
            transform: rotateY(160deg) rotateZ(45deg) translateX(30px);
        }
.heart3d [class$="17"] {
            transform: rotateY(170deg) rotateZ(45deg) translateX(30px);
        }
.heart3d [class$="18"] {
            transform: rotateY(180deg) rotateZ(45deg) translateX(30px);
        }
.heart3d [class$="19"] {
            transform: rotateY(190deg) rotateZ(45deg) translateX(30px);
        }
 .heart3d [class$="20"] {
            transform: rotateY(200deg) rotateZ(45deg) translateX(30px);
        }
 .heart3d [class$="21"] {
            transform: rotateY(210deg) rotateZ(45deg) translateX(30px);
        }
 .heart3d [class$="22"] {
            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"] {
            transform: rotateY(240deg) rotateZ(45deg) translateX(30px);
        }
.heart3d [class$="25"] {
            transform: rotateY(250deg) rotateZ(45deg) translateX(30px);
        }
.heart3d [class$="26"] {
            transform: rotateY(260deg) rotateZ(45deg) translateX(30px);
        }
.heart3d [class$="27"] {
            transform: rotateY(270deg) rotateZ(45deg) translateX(30px);
        }
.heart3d [class$="28"] {
            transform: rotateY(280deg) rotateZ(45deg) translateX(30px);
        }
.heart3d [class$="29"] {
            transform: rotateY(290deg) rotateZ(45deg) translateX(30px);
        }
 .heart3d [class$="30"] {
            transform: rotateY(300deg) rotateZ(45deg) translateX(30px);
        }
 .heart3d [class$="31"] {
            transform: rotateY(310deg) rotateZ(45deg) translateX(30px);
        }
 .heart3d [class$="32"] {
            transform: rotateY(320deg) rotateZ(45deg) translateX(30px);
        }
 .heart3d [class$="33"] {
            transform: rotateY(330deg) rotateZ(45deg) translateX(30px);
        }
 .heart3d [class$="34"] {
            transform: rotateY(340deg) rotateZ(45deg) translateX(30px);
        }
 .heart3d [class$="35"] {
            transform: rotateY(350deg) rotateZ(45deg) translateX(30px);
        }
 .heart3d [class$="36"] {
            transform: rotateY(360deg) rotateZ(45deg) translateX(30px);
        }

@keyframes spin {
            to {
                transform: rotateY(360deg) rotateX(360deg);
            }
        }
.per{
            width:50px;height:50px;position:absolute;top:0;left:0;right:0;bottom:0;
            margin:auto;transform-style:preserve-3d;perspective:800px;
        }

.img{width:50px;height:50px;position:absolute;backface-visibility:hidden;
        }
.img:nth-child(1){top:-50px;left:0;transform-origin:bottom;
            transform:translateZ(30px)rotateX(90deg);}
.img:nth-child(2){top:50px;left:0;transform-origin:top;
            transform:translateZ(30px)rotateX(-90deg);}
.img:nth-child(3){top:0px;left:-50px;transform-origin:right;
            transform:translateZ(30px)rotateY(-90deg);}
.img:nth-child(4){top:0px;left:50px;transform-origin:left;
            transform:translateZ(30px)rotateY(90deg);}
.img:nth-child(6){top:0px;left:0;transform:translateZ(30px);}
.img:nth-child(5){top:0px;left:0;transform:translateZ(0px);}
<div id="display"></div>
<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 class="per">
        <div class="img"><img width="50" height="50" src="image/1.jpg" /></div>
        <div class="img"><img width="50" height="50" src="image/2.jpg" /></div>
        <div class="img"><img width="50" height="50" src="image/3.jpg" /></div>
        <div class="img"><img width="50" height="50" src="image/3.jpg" /></div>
        <div class="img"><img width="50" height="50" src="image/2.jpg" /></div>
        <div class="img"><img width="50" height="50" src="image/1.jpg" /></div>
    </div>
</div>

var i =0;
var str ="如果,爱一个人,守一份爱情,可以在早春一起去踏青,可以在盛夏一起去赏荷,可以在浅秋一起去观月,可以在深冬一起去寻梅,不厌倦,却欢乐,不平凡,却平淡。那么,此生便无憾了。";
window.onload =function typing(){
        var myDiv =document.getElementById("display");
        myDiv.innerHTML +=str.charAt(i);
        i++;
        var id =setTimeout(typing,100);
        if(i==str.length){
            clearTimeout(id);
            myDiv.value ="";
            myDiv.innerHTML +=""
            //alert("程序执行完毕!");
        }
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值