花潮论坛

搜索
热搜: 活动 交友 discuz
查看: 174|回复: 75

用JS类封装粒子特效(二)

[复制链接]
  • TA的每日心情
    慵懒
    2025-12-15 08:01
  • 签到天数: 1670 天

    [LV.Master]伴坛终老

    3050

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

    发表于 2023-7-7 08:36 | 显示全部楼层 |阅读模式

    请马上登录,朋友们都在花潮里等着你哦:)

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x
    在上一讲,用JS类封装粒子特效(一),我们成功地创建了一个 Lizi 类,并通过实例化调用类生成了一个紫色正方形。本讲,我们将让这个正方形沿水平线方向来回移动。

    粒子 Lizi 类里,已经有了一个方法,creating,它负责生成粒子。要让粒子动起来,我们还需要添加另一个方法,moving :

    //Lizi的类
    class Lizi {
            //构造函数
            constructor(pa,size = 20) {
                    //属性代码
            }
            //生成粒子方法
            creating() {
                    //生成粒子代码
            }
            //粒子运动
            moving() {
                    //粒子运动代码
            }
    }

    这个 moving 函数,和 creating 函数一样,都是自定义的、自命名的,和 creating 能创建粒子一样,moving 将能驱动粒子移动。

    我们已知 Lizi 类构造函数里有一个 this.left 和 一个 this.top 属性,这两个属性在上一讲介绍过是用来存储粒子元素(this.ele)定位值的。试想,如果我们不断地改变 this.left 和 this.top 的值,方法是或加上、或减去一个特定值,是不是就可以驱动 this.ele 运动了呢?答案是肯定的,因为,粒子其实就是一个HTML元素,我们给它一个自定义元素名称,叫 li-zi,它和 div 一样拥有定位属性,在生成粒子函数 creating 里我们就已经使用了 left 和 top 两个 CSS 属性令生成的矩形(粒子)呆在指定的地方,我们如果可以让它呆的地方不断变化,它就是移动的。

    根据上面的分析,我们需要一个特定值去改变 this.left,我们就将该特定值命名为 xstep(x表示水平方向,step是步伐之意),故此,Lizi 类的构造函数 constructor 更改如下:

    //Lizi类里的构造函数
    constructor(pa,size = 20) {
            this.pa = pa;
            this.size = size;
            this.bg = 'purple';
            this.left = 10;
            this.top = 10;
            this.xstep = 1;
            this.ele = document.createElement('li-zi');
    }

    只是添加了一个属性,this.xstep,初始值为 1,此属性用于存储粒子水平方向移动的步幅,为正数时将向右移动,为负数时向左移动。

    moving 自定义函数将给 this.left 加上 this.xstep:

    moving() {
            this.left += this.xstep;
    }

    运算符 += 是将右边的变量加到左边的变量并改变左边变量的值(它实际上等同于 this.left = this.left + this.xstep),this.left 加上 this.xstep 之后,值会变大或变小(取决于步幅变量是正值还是负值),当大到一定的程度,会触碰或超越宿主的右边边界,所以我们需要设计一个条件,让粒子一旦触碰或超越宿主的右边边缘,步幅的值立马变为负数,this.xstep = 1 就变为 this.xstep = -1,这样 this.left += this.xstep 就不是加 1 而是减 1 了,就会往回走;往回走也会突破宿主的左边边界,即 0,这又需要设计另一个条件,让粒子一旦触碰左边边缘,立刻将 this.xstep 变为 1,this.xstep = 1,这样粒子又往右走。函数里我们不必给 this.xstep 赋具体的正、负值,因为它的值可能在实例化的时候改变,我们换一种聪明的做法:this.xstep = - this.xstep,就是令其互为正负值,这是一劳永逸的,不用担心步幅值的具体设定。

    所设定的条件,无非就是粒子是否触碰或超越了宿主元素的左边的边缘和右边的边缘,故此,可以拿 this.left 的值和左右两边的边界值做比较。边界,指粒子所在的宿主即粒子的父元素的上、右、下、左四个方向的边框,最左、最上为 0 ,最右、最下分别为宿主的宽度、高度。粒子(子元素)的 style.left 为 0 时,触碰了宿主(父元素)的左边边缘,粒子(子元素)的 style.left 为 宿主(父元素)的宽度减去粒子的宽度时,粒子触碰了宿主右边边缘。试看这个简单算法的表达语句:

    this.left <= 0 → 粒子对象的左边值 小于等于 0 时,触碰或突破父元素左边边缘
    this.left >= this.pa.offsetWidth - this.size → 粒子对象的左边值 大于等于 宿主宽度-粒子宽度 时,触碰或突破父元素右边边缘

    依据上面的比较条件,Lizi类里的 moving 函数可以改写如下:

    moving() {
            this.left += this.xstep; //加步幅以改变 left 值
            //判断是否超越左右边界,若是,令步幅值互为正负值(原来是正值则变为负值,原来是负值变为正值)
            if (this.left <= 0 || this.left >= this.pa.offsetWidth - this.size) this.xstep = -this.xstep;
    }

    两个条件写在小括号里,中间用 || 隔开,表示“或者”(or)的意思,if(条件一 || 条件二) 的意思是,“如果条件一 或 条件二成立”,只要有一个成立。那么,就处理 this.xstep 的赋值问题,this.xstep = -this.xstep ,正负数互反。(如果两个条件没有一个成立,this.xstep 的变化就不会发生。)

    this.left 只是记录了粒子对象的左边值,要驱动粒子移动,需要令粒子对象的 this.ele 即粒子的 HTML元素(li-zi元素) 改变其 CSS属性里 的 left 值,即 this.ele.style.left,写成:this.ele.style.left = this.left + 'px'; ,moving 函数进一步改写如下:

    moving() {
            this.left += this.xstep;
            if(this.left <= 0 || this.left >= this.pa.offsetWidth - this.size) this.xstep = -this.xstep;
            this.ele.style.left = this.left + 'px';
    }

    上面的 moving 方法是给粒子对象的左边值(this.left)+ 水平移动步幅(this.xstep),执行 moving 函数,粒子就水平移动一个 this.xstep 单位距离,但是并没有不停地移动。要达到持续移动,我们需要引入定时器持续调用 moving 函数,这里可以考虑 requestAnimationFrame API,这是利用显示器分辨率封装的定时器接口,渲染特效过程不额外消耗CPU资源,特效窗口不活动时暂停特效渲染,其语法为:

        requestAnimationFrame(函数名);

    在 JS 类里使用 requestAnimationFrame,我们需要给它绑定 this 指向才能正常工作,语句为:

        requestAnimationFrame(this.函数名.bind(this));

    因此,moving 函数更新为:

    moving() {
            this.left += this.xstep;
            if(this.left <= 0 || this.left >= this.pa.offsetWidth - this.size) this.xstep = -this.xstep;
            this.ele.style.left = this.left + 'px';
            requestAnimationFrame(this.moving.bind(this));
    }

    requestAnimationFrame定时器置于函数体之内且调用该函数,这叫递归调用,达到不停运行该函数的目的。

    我们还可以让粒子一旦创建立马运行 moving 函数,这只需要简单的操作,修改一下 creating 函数即可:

    creating() {
            this.ele.style.cssText = `
                    width: ${this.size}px;
                    height: ${this.size}px;
                    left: ${this.left}px;
                    top: ${this.top}px;
                    background: ${this.bg};
            `;
            this.pa.appendChild(this.ele);
            this.moving();
    }

    最后,实例化 Lizi 类,令人激动的时刻立马到来:

    let lz = new Lizi(mydiv,100); //创建实例化粒子
    lz.creating(); //创建一个粒子

    评分

    参与人数 4威望 +160 金钱 +320 经验 +160 收起 理由
    小辣椒 + 50 + 100 + 50 赞一个!
    醉美水芙蓉 + 30 + 60 + 30 神马都是浮云
    红影 + 50 + 100 + 50 赞一个!
    南无月 + 30 + 60 + 30 赞一个!

    查看全部评分

  • TA的每日心情
    慵懒
    2025-12-15 08:01
  • 签到天数: 1670 天

    [LV.Master]伴坛终老

    3050

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2023-7-7 08:36 | 显示全部楼层
    本帖最后由 马黑黑 于 2023-7-7 08:39 编辑

    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-12-15 08:01
  • 签到天数: 1670 天

    [LV.Master]伴坛终老

    3050

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2023-7-7 08:36 | 显示全部楼层
    本帖最后由 马黑黑 于 2023-7-7 08:40 编辑

    二楼效果完整代码
    1. <style>
    2. #mydiv {
    3.         marin: 20px auto;
    4.         width: 600px;
    5.         height: 300px;
    6.         border: 1px solid purple;
    7.         position: relative;
    8. }
    9. li-zi {
    10.         position: absolute;
    11. }
    12. </style>

    13. <div id="mydiv"></div>

    14. <script>

    15. class Lizi {
    16.         constructor(pa,size = 20) {
    17.                 this.pa = pa;
    18.                 this.size = size;
    19.                 this.bg = 'purple';
    20.                 this.left = 10;
    21.                 this.top = 10;
    22.                 this.xstep = 1;
    23.                 this.ele = document.createElement('li-zi');
    24.         }

    25.         creating() {
    26.                 this.ele.style.cssText = `
    27.                         width: ${this.size}px;
    28.                         height: ${this.size}px;
    29.                         left: ${this.left}px;
    30.                         top: ${this.top}px;
    31.                         background: ${this.bg};
    32.                 `;
    33.                 this.pa.appendChild(this.ele);
    34.                 this.moving();
    35.         }

    36.         moving() {
    37.                 this.left += this.xstep;
    38.                 if(this.left <= 0 || this.left >= this.pa.offsetWidth - this.size) this.xstep = -this.xstep;
    39.                 this.ele.style.left = this.left + 'px';
    40.                 requestAnimationFrame(this.moving.bind(this));
    41.         }
    42. }

    43. let lz = new Lizi(mydiv,50); //实例化粒子
    44. lz.creating(); //创建一个粒子

    45. </script>
    复制代码


    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-12-15 08:01
  • 签到天数: 1670 天

    [LV.Master]伴坛终老

    3050

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2023-7-7 08:36 | 显示全部楼层
    本帖最后由 马黑黑 于 2023-7-7 08:55 编辑

    水平方向的移动解决了,那么,垂直方向的移动呢?

    步骤一:给 constructor 构造函数添加一个属性

    constructor(pa,size = 20) {
            this.pa = pa;
            this.size = size;
            this.bg = 'purple';
            this.left = 10;
            this.top = 10;
            this.xstep = 1;
            this.ystep = 1;
            this.ele = document.createElement('li-zi');
    }


    步骤二:将 moving 函数改写为——

    moving() {
            this.left += this.xstep;
            if(this.top<= 0 || this.top >= this.pa.offsetHeight - this.size) this.ystep = -this.ystep;
            this.ele.style.top = this.top + 'px';
    }


    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-12-15 08:01
  • 签到天数: 1670 天

    [LV.Master]伴坛终老

    3050

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2023-7-7 08:36 | 显示全部楼层
    本帖最后由 马黑黑 于 2023-7-7 09:00 编辑

    水平方向和垂直方向同时移动的完整代码,大家可以复制代码去 pencil code (freeee.ml) 测试一下效果:
    1. <style>
    2. #mydiv {
    3.         marin: 20px auto;
    4.         width: 600px;
    5.         height: 300px;
    6.         border: 1px solid purple;
    7.         position: relative;
    8. }
    9. li-zi {
    10.         position: absolute;
    11. }
    12. </style>

    13. <div id="mydiv"></div>

    14. <script>

    15. class Lizi {
    16.         constructor(pa,size = 20) {
    17.                 this.pa = pa;
    18.                 this.size = size;
    19.                 this.bg = 'purple';
    20.                 this.left = 10;
    21.                 this.top = 10;
    22.                 this.xstep = 1;
    23.                 this.ystep = 1;
    24.                 this.ele = document.createElement('li-zi');
    25.         }

    26.         creating() {
    27.                 this.ele.style.cssText = `
    28.                         width: ${this.size}px;
    29.                         height: ${this.size}px;
    30.                         left: ${this.left}px;
    31.                         top: ${this.top}px;
    32.                         background: ${this.bg};
    33.                 `;
    34.                 this.pa.appendChild(this.ele);
    35.                 this.moving();
    36.         }

    37.         moving() {
    38.                 this.left += this.xstep;
    39.                 this.top += this.ystep;
    40.                 if(this.left <= 0 || this.left >= this.pa.offsetWidth - this.size) this.xstep = -this.xstep;
    41.                 if(this.top <= 0 || this.top >= this.pa.offsetHeight - this.size) this.ystep = -this.ystep;
    42.                 this.ele.style.left = this.left + 'px';
    43.                 this.ele.style.top = this.top + 'px';
    44.                 requestAnimationFrame(this.moving.bind(this));
    45.         }
    46. }

    47. let lz = new Lizi(mydiv,50); //创建实例化粒子
    48. lz.creating(); //创建一个粒子

    49. </script>
    复制代码




    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-12-15 08:01
  • 签到天数: 1670 天

    [LV.Master]伴坛终老

    3050

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2023-7-7 08:41 | 显示全部楼层
    本帖最后由 马黑黑 于 2023-7-7 09:22 编辑

    单击移动的大正方形,看看会发生什么:

    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2024-3-4 09:02
  • 签到天数: 33 天

    [LV.5]常住居民I

    94

    主题

    9699

    回帖

    2万

    积分

    论坛元老

    Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80

    花潮美女鼠牛虎兔龙蛇马羊猴鸡狗猪蝴蝶情怀音画大师天籁妙音风雨同行我心永远绚丽缤纷

    发表于 2023-7-7 09:30 | 显示全部楼层
    马黑黑 发表于 2023-7-7 08:41
    本帖最后由 马黑黑 于 2023-7-7 09:22 编辑 单击移动的大正方形,看看会发生什么:

    我怎么点不了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2024-3-4 09:02
  • 签到天数: 33 天

    [LV.5]常住居民I

    94

    主题

    9699

    回帖

    2万

    积分

    论坛元老

    Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80

    花潮美女鼠牛虎兔龙蛇马羊猴鸡狗猪蝴蝶情怀音画大师天籁妙音风雨同行我心永远绚丽缤纷

    发表于 2023-7-7 09:53 | 显示全部楼层
    把(一)(二)连起来看了一遍,自我感觉明白些了。。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-12-15 08:01
  • 签到天数: 1670 天

    [LV.Master]伴坛终老

    3050

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2023-7-7 10:27 | 显示全部楼层

    6楼的大正方形可点,再点
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-12-15 08:01
  • 签到天数: 1670 天

    [LV.Master]伴坛终老

    3050

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2023-7-7 10:28 | 显示全部楼层
    南无月 发表于 2023-7-7 09:53
    把(一)(二)连起来看了一遍,自我感觉明白些了。。

    应该能明白什么
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-12-1 20:32
  • 签到天数: 1052 天

    [LV.10]以坛为家III

    1881

    主题

    32万

    回帖

    37万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮美女虎龙狗猪多彩人生星月交辉海样胸怀火热情怀优雅迷人神秘浪漫缤纷心情草莓情怀蝴蝶情怀心曲飞扬星星情怀七彩绚丽活泼开朗女儿情怀相遇之美一往情深花好月圆心香一瓣紫色情节飞龙在天金剪刀天籁妙音妙笔生花风雨同行我心永远天长地久幸福快乐绚丽缤纷喜乐安康中秋征文周年庆指尖上的流年舞会之星分析(喊冤)章总结章杀人王小强章最佳杀刺临屏写诗七夕诗钟活动第五届风云第六届风云情人节花潮管理

    发表于 2023-7-7 10:40 | 显示全部楼层
    马黑黑 发表于 2023-7-7 10:27
    6楼的大正方形可点,再点

    我也点不了
     
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-12-1 20:32
  • 签到天数: 1052 天

    [LV.10]以坛为家III

    1881

    主题

    32万

    回帖

    37万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮美女虎龙狗猪多彩人生星月交辉海样胸怀火热情怀优雅迷人神秘浪漫缤纷心情草莓情怀蝴蝶情怀心曲飞扬星星情怀七彩绚丽活泼开朗女儿情怀相遇之美一往情深花好月圆心香一瓣紫色情节飞龙在天金剪刀天籁妙音妙笔生花风雨同行我心永远天长地久幸福快乐绚丽缤纷喜乐安康中秋征文周年庆指尖上的流年舞会之星分析(喊冤)章总结章杀人王小强章最佳杀刺临屏写诗七夕诗钟活动第五届风云第六届风云情人节花潮管理

    发表于 2023-7-7 10:43 | 显示全部楼层
    黑黑把其中的内容都揉碎了掰开了详细讲解,这样的讲解太好了
     
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-12-1 20:32
  • 签到天数: 1052 天

    [LV.10]以坛为家III

    1881

    主题

    32万

    回帖

    37万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮美女虎龙狗猪多彩人生星月交辉海样胸怀火热情怀优雅迷人神秘浪漫缤纷心情草莓情怀蝴蝶情怀心曲飞扬星星情怀七彩绚丽活泼开朗女儿情怀相遇之美一往情深花好月圆心香一瓣紫色情节飞龙在天金剪刀天籁妙音妙笔生花风雨同行我心永远天长地久幸福快乐绚丽缤纷喜乐安康中秋征文周年庆指尖上的流年舞会之星分析(喊冤)章总结章杀人王小强章最佳杀刺临屏写诗七夕诗钟活动第五届风云第六届风云情人节花潮管理

    发表于 2023-7-7 10:45 | 显示全部楼层
    感觉moving() 有点像JS,而前面的creating()等像css
     
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2024-3-4 09:02
  • 签到天数: 33 天

    [LV.5]常住居民I

    94

    主题

    9699

    回帖

    2万

    积分

    论坛元老

    Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80

    花潮美女鼠牛虎兔龙蛇马羊猴鸡狗猪蝴蝶情怀音画大师天籁妙音风雨同行我心永远绚丽缤纷

    发表于 2023-7-7 10:51 | 显示全部楼层
    马黑黑 发表于 2023-7-7 10:27
    6楼的大正方形可点,再点

    刚才没发现。。。点一下生一个小的点几个生几个小的,点快了两个小的会连在一起。。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2024-3-4 09:02
  • 签到天数: 33 天

    [LV.5]常住居民I

    94

    主题

    9699

    回帖

    2万

    积分

    论坛元老

    Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80

    花潮美女鼠牛虎兔龙蛇马羊猴鸡狗猪蝴蝶情怀音画大师天籁妙音风雨同行我心永远绚丽缤纷

    发表于 2023-7-7 10:53 | 显示全部楼层

    教程给的极明白,一词一句的讲。。接下来是消化。。。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-12-15 08:01
  • 签到天数: 1670 天

    [LV.Master]伴坛终老

    3050

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2023-7-7 11:35 | 显示全部楼层
    南无月 发表于 2023-7-7 10:53
    教程给的极明白,一词一句的讲。。接下来是消化。。。

    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-12-15 08:01
  • 签到天数: 1670 天

    [LV.Master]伴坛终老

    3050

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2023-7-7 11:35 | 显示全部楼层
    南无月 发表于 2023-7-7 10:51
    刚才没发现。。。点一下生一个小的点几个生几个小的,点快了两个小的会连在一起。。

    没有设限,随便点,内存不消耗殆尽就行
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-12-15 08:01
  • 签到天数: 1670 天

    [LV.Master]伴坛终老

    3050

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2023-7-7 11:36 | 显示全部楼层

    不可能吧
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-12-15 08:01
  • 签到天数: 1670 天

    [LV.Master]伴坛终老

    3050

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2023-7-7 11:36 | 显示全部楼层
    红影 发表于 2023-7-7 10:43
    黑黑把其中的内容都揉碎了掰开了详细讲解,这样的讲解太好了

    希望能看懂
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-12-15 08:01
  • 签到天数: 1670 天

    [LV.Master]伴坛终老

    3050

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2023-7-7 11:39 | 显示全部楼层
    红影 发表于 2023-7-7 10:45
    感觉moving() 有点像JS,而前面的creating()等像css

    它们都是JS。JS去操纵 CSS 和 HTML,同时还能做复杂的运算,就这么回事。

    46和47行,就是 moving 函数中操作 css 的属性值,前面的是计算,49行是调用了定时器。JS就是这么做事的:通过准备,然后去管 CSS 和 HTML 的东东。
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    小黑屋|手机版|Archiver|服务支持:DZ动力|huachaowang.com Inc. ( 蜀ICP备17032287号-1 )

    GMT+8, 2025-12-16 06:45 , Processed in 0.092671 second(s), 25 queries .

    Powered by Discuz! X3.4

    © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表