html--3D爱心

文章目录

代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>爱心</title>
    <style type="text/css">
        *{
            margin: 0px;
            border: 0px;
        }
        body{
			overflow: hidden;
            background-color: #000000;
        }
        .container{
            position: relative;
            left: 0;
            top: 0;
            bottom: 0;
            right: 0;
            margin: auto;
            height: 260px;
            width: 200px;
            transform-origin: 50% 130%;
            transform-style: preserve-3d;
            animation: 8s rotate linear infinite;
        }
        @keyframes rotate{
            from{
                transform:rotateX(0deg) rotateY(0deg);
            }
            to{
                transform: rotateX(360deg) rotateY(360deg);
            }
        }
        .square{
            position: relative;
            width: 100px;
            height: 100px;
            transform:translateX(50px) translateY(300px) translateZ(50px);
            transform-style: preserve-3d;
        }
        .square div{
            position: absolute;
            top: 0;
            left: 0;
            width: 100px;
            height: 100px;
        }
        .square div:nth-child(1){
            top: 100px;
            transform-origin: top;
            transform:rotateX(-90deg);
        }
        .square div:nth-child(2){
            left: 100px;
            transform-origin: left;
            transform:rotateY(90deg);
        }
        .square div:nth-child(3){
            left: -100px;
            transform-origin: right;
            transform:rotateY(-90deg);
        }
        .square div:nth-child(4){
            top: -100px;
            transform-origin: bottom;
            transform:rotateX(90deg);
        }
        .square div:nth-child(6){
            top:0;
            transform:translateZ(-100px);
        }
        .square div:nth-child(5){

        }
        .heart{
            position: absolute;
            top:0;
            left:0;
            height: 260px;
            width: 200px;
            border: 2px solid red;
            margin: 200px auto;
            border-radius: 50% 50% 0%/50% 50% 0%;
            border-bottom: 0;
            border-left: 0;
        }
        img{
            width: 100px;
            height:100px;
        }
    </style>
</head>
<body>
    <div class="container">
        <div class="square">
            <div><img src="images/1.jpg"></div>
            <div><img src="images/2.jpg"></div>
            <div><img src="images/3.jpg"></div>
            <div><img src="images/4.jpg"></div>
            <div><img src="images/5.jpg"></div>
            <div><img src="images/6.jpg"></div>
        </div>
    </div>
    <script  type="text/javascript">
        var container = document.getElementsByClassName("container")[0];
        for (var i = 0;i < 36;i++) {
            var heart = document.createElement("div");
            heart.className = "heart";
            heart.style.transform = "rotateY("+i*10+"deg) rotateZ(45deg) translateX(30px)";
            container.appendChild(heart);
        }
    </script>
</body>
</html>

PS:代码中定义图片的命名
在这里插入图片描述
所以需要创建文件夹images,将所要的图片放到里面
在这里插入图片描述
在这里插入图片描述

效果

在这里插入图片描述

  • 7
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
3D粒子爱心代码的HTML实现方式有很多种,其中比较常用的是使用HTML5中的canvas元素和JavaScript来实现。 以下是一个简单的例子: ``` <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>3D粒子爱心</title> <style> canvas { background-color: black; } </style> </head> <body> <canvas id="canvas"></canvas> <script> var canvas = document.getElementById('canvas'); canvas.width = window.innerWidth; canvas.height = window.innerHeight; var ctx = canvas.getContext('2d'); var particles = []; var particleCount = 200; var heart = { x: 0, y: 0, size: 150, angle: 0 }; var colors = ['#ff0000', '#f44336', '#e91e63', '#9c27b0', '#673ab7', '#3f51b5', '#2196f3', '#03a9f4', '#00bcd4', '#009688', '#4caf50', '#8bc34a', '#cddc39', '#ffeb3b', '#ffc107']; function Particle() { this.x = Math.random() * canvas.width; this.y = Math.random() * canvas.height; this.vx = Math.random() * 4 - 2; this.vy = Math.random() * 4 - 2; this.size = Math.random() * 2 + 1; this.color = colors[Math.floor(Math.random() * colors.length)]; } function createParticles() { for (var i = 0; i < particleCount; i++) { particles.push(new Particle()); } } function updateParticles() { for (var i = 0; i < particles.length; i++) { particles[i].x += particles[i].vx; particles[i].y += particles[i].vy; if (particles[i].x < -50) { particles[i].x = canvas.width + 50; } if (particles[i].y < -50) { particles[i].y = canvas.height + 50; } if (particles[i].x > canvas.width + 50) { particles[i].x = -50; } if (particles[i].y > canvas.height + 50) { particles[i].y = -50; } } } function drawParticles() { ctx.clearRect(0, 0, canvas.width, canvas.height); ctx.globalCompositeOperation = 'lighter'; for (var i = 0; i < particles.length; i++) { ctx.fillStyle = particles[i].color; ctx.beginPath(); ctx.arc(particles[i].x, particles[i].y, particles[i].size, 0, Math.PI * 2); ctx.closePath(); ctx.fill(); } } function drawHeart() { ctx.globalCompositeOperation = 'source-over'; ctx.fillStyle = '#ffffff'; ctx.translate(canvas.width / 2, canvas.height / 2); ctx.rotate(heart.angle); ctx.scale(heart.size / 100, heart.size / 100); ctx.beginPath(); ctx.moveTo(0, 0); ctx.bezierCurveTo(0, -60, -80, -100, -130, -60); ctx.bezierCurveTo(-180, -20, -180, 50, -130, 90); ctx.bezierCurveTo(-100, 110, -60, 140, 0, 170); ctx.bezierCurveTo(60, 140, 100, 110, 130, 90); ctx.bezierCurveTo(180, 50, 180, -20, 130, -60); ctx.bezierCurveTo(80, -100, 0, -60, 0, 0); ctx.closePath(); ctx.fill(); } function loop() { requestAnimationFrame(loop); updateParticles(); drawParticles(); heart.angle += Math.PI / 180 * 2; if (heart.size < 300) { heart.size += 1; } drawHeart(); } createParticles(); loop(); </script> </body> </html> ``` 在这个例子中,我们创建了一个canvas元素,并通过JavaScript来生成粒子和绘制爱心。具体来说,我们首先定义了一个Particle类,表示一个粒子的基本属性,然后通过createParticles函数生成了一定数量的随机粒子。在loop函数中,我们通过updateParticles函数更新所有粒子的位置,然后在drawParticles函数中绘制所有粒子。此外,我们还定义了一个heart对象来表示爱心的属性和状态,并在drawHeart函数中绘制爱心。最后,在loop函数中不断更新爱心的状态和大小,实现了一个动态的3D粒子爱心效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fo安方

觉得俺的文章还行,感谢打赏,爱

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值