• 花好月圆│以代码寄相思,绘嫦娥之奔月


    🎈 中秋快乐

    • 中秋节在即,自古以来,中秋节便有寄托思念故乡、亲人之情、祈盼丰收、幸福之意
    • 中秋节,又称:月节仲秋节月亮节团圆节
    • 中秋节起源于上古时代,普及于汉代,定型于唐代,盛行于宋朝,是中国 四大传统 节日之一,也是现代国家法定节假日
    • 作为程序员,工作一般都比较辛苦,好不容易有个三天假期,因为疫情很多人都好几年没有跟家人团聚了,正值中秋,作为技术人员,我们可以用自己的代码述说自己的相思之意
    • 如下图所示,我们可以通过前端绘制出 但愿人长久,千里共婵娟 的中秋月圆之景,嫦娥奔月 寄托相思之意

    中秋快乐

    🎈 月亮倒影

    • 加载页面时,我们可以通过设置 定时器,每隔 100毫秒 更新一下月亮和倒影的位置
    • 前端可以通过 radial-gradient 设置元素的位置和样式
    function bg(widSpd, hgtSpd, posTop) {
      	return water.style.background = "radial-gradient(" + widSpd + "px " + hgtSpd + "px at 50.5% " + posTop + "%,rgb(250, 250, 249) 50%,rgb(247, 247, 245) 63%,rgb(7,7,70) 70%,rgb(18, 2, 56) 85%,rgb(13, 1, 59) 100%)";
    };
    
    • 1
    • 2
    • 3

    🎈 制造星星

    • 关于星星,我们需要制作上方夜空真实的星星和水中星星倒影,两类星星倒影特效一样,只是位置不同
    • 可以通过 transform 设置星星的位置,关于星星的移动速度可以通过 Math.random() 设置随机移动速度,让其显得更加的逼真
    function createStar(starNum, element, element2, scal, deg, rotY, rotX) {
      var stars = starNum;
      var $stars = $(element);
      var r = 2000;
      for (var i = 0; i < stars; i++) {
        var $star = $("
    ").addClass(element2); $stars.append($star); } $("." + element2).each(function () { var cur = $(this); var s = 0.2 + (Math.random() * scal); var curR = r + (Math.random() * deg); cur.css({ transformOrigin: "0 0 " + curR + "px", transform: " translate3d(0,0,-" + curR + "px) rotateY(" + (Math.random() * rotY) + "deg) rotateX(" + (Math.random() * rotX) + "deg) rotateY(" + -10 + "deg) scale(" + s + "," + s + ")" }) }) } createStar(40, ".stars", "star", 1, 300, 360, -100); createStar(40, ".starUnder", "star1", 1.5, 360, 300, 200);
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    🎈 设置水面模糊

    • css 中可以通过 blur 可以设置 模糊度,营造出水面波光荡漾的效果
    • 让整体画面可以看起来更加的逼真
    /** 方法一 **/
    filter:blur(1px)
    
    /** 方法二 **/
    backdrop-filter: blur(1px);
    
    • 1
    • 2
    • 3
    • 4
    • 5

    🎈 设置文字

    • 设置文字,可以通过 animation 设置文字出现的特效
    • 设置 dur 控制文字出现的时间间隔,word 是需要展示的字体数组
    var word1 = ["但", "愿", "人", "长", "久"];
    var word2 = ["千", "里", "共", "婵", "娟"];
    
    function word(className, dur, word) {
      var i = 0;
      var timeName = setInterval(function () {
        $(className).css('animation', 'appear 4s linear').append(`

    ${word[i]}

    `
    ); i++; if (i >= word.length) { clearInterval(timeName); } }, dur); }
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    🎈 嫦娥奔月

    • 创建 div 标签,包裹住嫦娥奔月的图片即可
    • 可以通过 animation 设置嫦娥图片出现的动效,让其奔月的效果渐渐显现,更加的真实

    嫦娥奔月

    var moon = document.getElementById("moon");
    var a = document.createElement("div");
    a.className = "Ocean";
    moon.appendChild(a);
    moon.innerHTML += "";
    var girl = document.getElementById("change");
    girl.style.animation = "appear 6s linear";
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
  • 相关阅读:
    使用spring-boot-dependencies代替spring-boot-starter-parent,jar启动报错 没有主清单属性解决
    测试开发如何快速上手Vue前端开发(下)
    GoogLeNet的不同版本
    vue 动态引入js
    flutter百度地图定位, poi检索功能
    计算机视觉之三维重建——第八章:SLAM系统设计《深入浅出sfm和SLAM核心算法 (鲁鹏)》
    Linux下Minio分布式存储安装配置(图文详细)
    Android 反编译入门(基于 Mac)
    机器学习的环境搭建与配置
    JWT详细讲解
  • 原文地址:https://blog.csdn.net/weixin_41635750/article/details/126587532