天天看点

520情人节程序员的浪漫告白~html+css+js浪漫星空❤爱心3D相册 (含音乐)

❉ 来自程序员的浪漫告白~html+css+js浪漫星空❤爱心3D相册 (含音乐)可自定义编辑文字

一年一度的/520情人节/七夕情人节/生日礼物/告白师妹/圣诞节/元旦节跨年/程序员表白

,是不是要给女朋友或者正在追求的妹子一点小惊喜呢,今天这篇博客就分享下前端代码html+css+javascript 如何实现3D立体动态相册。赶紧学会了,来制作属于我们程序员的浪漫吧!

告白前, 我们的留言区开放给你!快来秀出你的别样表白方式,和你心仪的那个ta表白吧!

❉ 文章目录

  • ❉ 来自程序员的浪漫告白~html+css+js浪漫星空❤爱心3D相册 (含音乐)可自定义编辑文字
  • ❉ 前言
    • 1. PC(电脑端)演示
    • 2. H5(手机端)演示
  • ❉ 代码文件目录
  • 一、3D相册(代码实现)
    • html (相册部分)
    • js (星空部分)
  • 二、3D相册裁剪(教程)
    • 1.相片裁剪(教程)
    • 2.美图秀秀(电脑版)裁剪图片
  • 三、歌曲mp3更换教程(教程)
  • 四、做好的网页效果,如何通过发链接给别人看?
    • 1.1 解决部署上线~> 部署上线工具(可永久免费使用)
      • 1.1部署流程
      • 1.2 哇~ 部署成功
  • 五、前端 零基础 入门到高级 (视频+源码+开发软件+学习资料+面试题) 一整套 (教程)
  • 六、❉ 源码获取
  • 七、❉更多表白源码

❉ 前言

程序员 520/七夕情人节/1314/表白/求婚,是不是要给女朋友或者正在追求的妹子一点小惊喜呢 ? html+css+js 编写的浪漫星空❤爱心相册表白效果,酷炫迷人,助力程序员撩妹手到擒来,一帆风顺,祝愿大家有情人终成眷属,天长地久。。赶紧学会了,来制作属于我们程序员的浪漫吧!

1. PC(电脑端)演示

在线演示地址

2. H5(手机端)演示

❉ 代码文件目录

520情人节程序员的浪漫告白~html+css+js浪漫星空❤爱心3D相册 (含音乐)

一、3D相册(代码实现)

html (相册部分)

<body>
    <audio autoplay="autopaly">
      <source src="renxi.mp3" type="audio/mp3" />
    </audio>
    <!-- 星空html -->
    <!-- <div> -->
    <div class="container2">
      <div class="content">
        <canvas id="universe"></canvas>
      </div>
    </div>
    <!-- </div> -->
    <div class="title">
      <!-- 星团文字html -->
      <h3 class="STARDUST1">&nbsp;&nbsp;2016 - 2021</h3>
      <h1 class="STARDUST2">小夕-相遇是缘</h1>
      <h3 class="STARDUST3">L O V E <strong>❤</strong> Y O U</h3>
      <!-- 爱心html -->
      <img class="img" src="./123.png" alt="" />
      <canvas id="pinkboard"> </canvas>
    </div>
  </body>
           

js (星空部分)

<!-- 星团js -->
  <script>
    let particles = [];
    let microparticles = [];

    const c1 = createCanvas({
      width: $(window).width(),
      height: $(window).height(),
    });

    const tela = c1.canvas;
    const canvas = c1.context;

    // $("body").append(tela);
    $("body").append(c1.canvas);

  
        setTimeout(
          function () {
            clearInterval(this.ID);
          }.bind(this),
          this.life
        );
      }

      render() {
        this.canvas.beginPath();
        this.canvas.arc(this.x, this.y, this.radius, 0, 2 * Math.PI);
        // this.canvas.lineWidth = 2;
        this.canvas.shadowOffsetX = 0;
        this.canvas.shadowOffsetY = 0;
        // this.canvas.shadowBlur = 6;
        this.canvas.shadowColor = "#000000";
        this.canvas.fillStyle = this.color;
        this.canvas.fill();
        this.canvas.closePath();
      }

      move() {
        this.x -=
          this.direction *
          Math.sin(this.progress / (this.random1 * 430)) *
          this.s;
        this.y -= Math.cos(this.progress / this.h) * this.s;

        if (this.x < 0 || this.x > this.w - this.radius) {
          clearInterval(this.ID);
          return false;
        }

        if (this.y < 0) {
          clearInterval(this.ID);
          return false;
        }
        this.render();
        this.progress++;
        return true;
      }
    }
    setInterval(
      function () {
        particles.push(new Particle1(canvas));
        random_life = 2000 * Math.random();
      }.bind(this),
      random_life
    );

    function clear() {
      let grd = canvas.createRadialGradient(
        tela.width / 2,
        tela.height / 2,
        0,
        tela.width / 2,
        tela.height / 2,
        tela.width
      );
      grd.addColorStop(0, "rgba(20,20,20,1)");
      grd.addColorStop(1, "rgba(0,0,0,0)");
      // Fill with gradient
      canvas.globalAlpha = 0.16;
      canvas.fillStyle = grd;
      canvas.fillRect(0, 0, tela.width, tela.height);
    }
    function update() {
      clear();
      particles = particles.filter(function (p) {
        return p.move();
      });
      microparticles = microparticles.filter(function (mp) {
        return mp.move();
      });
      requestAnimationFrame(update.bind(this));
    }

    function createCanvas(properties) {
      let canvas = document.createElement("canvas");
      canvas.width = properties.width;
      //   canvas.style.zIndex = 999;
      canvas.height = properties.height;
      let context = canvas.getContext("2d");
      return {
        canvas: canvas,
        context: context,
      };
    }
    update();
  </script>

           

二、3D相册裁剪(教程)

教程如下:需要1张图片(可自定义)

1.相片裁剪(教程)

首先:下载美图秀秀/百度下载/或者软件安装

或者使用在线链接裁剪—> 在线裁剪图片链接

520情人节程序员的浪漫告白~html+css+js浪漫星空❤爱心3D相册 (含音乐)

2.美图秀秀(电脑版)裁剪图片

1选择需要裁减的图片

520情人节程序员的浪漫告白~html+css+js浪漫星空❤爱心3D相册 (含音乐)

2.图片裁减大小建议在 600px *600px 左右 否则图片太大,页面会出现卡顿现象哦

520情人节程序员的浪漫告白~html+css+js浪漫星空❤爱心3D相册 (含音乐)

3…保存相片

520情人节程序员的浪漫告白~html+css+js浪漫星空❤爱心3D相册 (含音乐)
520情人节程序员的浪漫告白~html+css+js浪漫星空❤爱心3D相册 (含音乐)

三、歌曲mp3更换教程(教程)

如需更换

mp3

背景音乐,可自行下载更换即可~ mp3免费下载地址

1.搜索需要的歌曲

520情人节程序员的浪漫告白~html+css+js浪漫星空❤爱心3D相册 (含音乐)

2.下载

520情人节程序员的浪漫告白~html+css+js浪漫星空❤爱心3D相册 (含音乐)

3获取歌曲id

4关注公众号以后/复制链接到浏览器打开

520情人节程序员的浪漫告白~html+css+js浪漫星空❤爱心3D相册 (含音乐)

5下载mp3 ~下载完毕以后自行替换mp3文件即可(如不想修改代码,必须保持名称一致)

520情人节程序员的浪漫告白~html+css+js浪漫星空❤爱心3D相册 (含音乐)

四、做好的网页效果,如何通过发链接给别人看?

1.1 解决部署上线~> 部署上线工具(可永久免费使用)

1.不需要买服务器就能部署线上,全世界都能访问你的连接啦, 这里给大家推荐一个程序员必备神器~

插件集成了超级多好用的插件,免费下载安装,简单易懂, 简直神器 ~ 需要可在文章 ↓ 下方公Z号获取

2.就是把你的代码效果做好了以后, 部署到线上, 把链接发给别人, 就可以让对方通过你的连接点击进去, 就能看到你的网页效果啦, 电脑端和手机端都可以噢! (不然别人看你的网页都要发文件过去,体验感不太好哦~)

1.1部署流程

520情人节程序员的浪漫告白~html+css+js浪漫星空❤爱心3D相册 (含音乐)

1.2 哇~ 部署成功

哇~ 部署成功! 将你写好的页面部署上线后, 全世界的人都可以通过链接访问到你的网页了(永久免费使用哦)~

520情人节程序员的浪漫告白~html+css+js浪漫星空❤爱心3D相册 (含音乐)

五、前端 零基础 入门到高级 (视频+源码+开发软件+学习资料+面试题) 一整套 (教程)

适合入门到高级的童鞋们入手~

520情人节程序员的浪漫告白~html+css+js浪漫星空❤爱心3D相册 (含音乐)

六、❉ 源码获取

❉ ~ 关注我,点赞博文~ 每天带你涨知识!

❉ 1.看到这里了就 [点赞+好评+收藏] 三连~ 支持下吧,你的「点赞,好评,收藏」是我创作的动力。

❉ 2.关注我~ 每天带你学习 :各种前端插件、3D炫酷效果、图片展示、文字效果、以及整站模板 、大学生毕业模板 、期末大作业模板 、等! 「在这里有好多 前端 开发者,一起探讨 前端 Node 知识,互相学习」!

❉ 3.以上内容技术相关问题可以相互学习,可关注↓公Z号 获取更多源码 !

七、❉更多表白源码

❤100款表白源码演示地址