天天看點

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款表白源碼示範位址