马黑黑 发表于 2022-7-21 19:55

JS原生自带的animate方法

很多人认为,animate方法是jQuery封装出来的。这是误会,虽然jQuery的确封装有完美的animate方法。

animate是JS原生自带的一个方法,它实际上和CSS的 @keyframes + animation 一样,都是基于 animate API 封装的。JS 的 animate 方法有两个参数:

    obj.animate(@keyframes, option);

obj指元素,需要调用 animate 方法的元素;animate 就是方法,括号里是两个 animate 所需参数,其中:

@keyframes 指动画属性设置,一般以JS对象出现,例如设置透明度变化,



    obj.animate(
       { opacity: },
      {// options here},
    );


红色部分的代码,等同于CSS中的——

@keyframes { from { opacity: 1; } to { opacity: 0.5; } }



红色代码也可以反过来用数组套对象的方法:

[ { opacity: 1 }, {opacity: 0.5 } ],

这看上去更接近 CSS 的 from 。。。 to 。。。 的结构。

option 参数是关于动画的参数设置,比如运行时长、执行次数、运动曲率等等,都一一对应与 CSS 的 animation 属性名称,请在下面的实例代码中体会常用的几个 option 参数。

一个 animate 实例的代码,div 在两种颜色间变换背景色:

<style>
#papa {
        margin: auto;
        width: 100px;
        height: 100px;
        border: 1px solid;
}
</style>

<div id="papa"></div>

<script>
papa.animate(
        {
                background: [, //从浅绿到浅蓝变化
        },
        {
                duration: 3000, // 运动时长
                iterations: Infinity,// 执行次数:循环
                direction: 'alternate', // 方向:反向运行动画(不要本句或设其他值就不反向)
        },
);
</script>


注意一下红紫色属性值,头两个是数值型,所以不要引号,后一个是字节型,或称字符串值,要有引号。同样的,第一个 animate 的参数,表示颜色的值属于字节型,所以要用引号。

红影 发表于 2022-7-21 20:12

原来JS也可以做动画的{:4_204:}

马黑黑 发表于 2022-7-21 20:41

红影 发表于 2022-7-21 20:12
原来JS也可以做动画的

IE不支持,以前是IE当道,所以大家都不去用,就有了误会,以为JS不支持动画,需要额外封装

红影 发表于 2022-7-22 19:40

马黑黑 发表于 2022-7-21 20:41
IE不支持,以前是IE当道,所以大家都不去用,就有了误会,以为JS不支持动画,需要额外封装

原来还有这样的历史啊,黑黑知道的真多{:4_204:}

马黑黑 发表于 2022-7-22 20:07

红影 发表于 2022-7-22 19:40
原来还有这样的历史啊,黑黑知道的真多

做网站都知道的

红影 发表于 2022-7-22 20:58

马黑黑 发表于 2022-7-22 20:07
做网站都知道的

我们这样不做的,肯定不知道呢{:4_173:}

马黑黑 发表于 2022-7-22 20:59

红影 发表于 2022-7-22 20:58
我们这样不做的,肯定不知道呢

其实做论坛也是做网站,只是各人研究方向不同。很多人人,做论坛时会考虑浏览器的问题。

红影 发表于 2022-7-23 22:04

马黑黑 发表于 2022-7-22 20:59
其实做论坛也是做网站,只是各人研究方向不同。很多人人,做论坛时会考虑浏览器的问题。

我们几个都只是闲玩了,没研究过{:4_173:}

马黑黑 发表于 2022-7-23 22:05

红影 发表于 2022-7-23 22:04
我们几个都只是闲玩了,没研究过

其实也行

红影 发表于 2022-7-24 14:00

马黑黑 发表于 2022-7-23 22:05
其实也行

嗯嗯,自在地安才更有玩的动力{:4_173:}

马黑黑 发表于 2022-7-24 15:48

红影 发表于 2022-7-24 14:00
嗯嗯,自在地安才更有玩的动力

就酱紫的

红影 发表于 2022-7-24 21:07

马黑黑 发表于 2022-7-24 15:48
就酱紫的

那就继续自在着了。

马黑黑 发表于 2022-7-24 21:26

红影 发表于 2022-7-24 21:07
那就继续自在着了。

挺好的
页: [1]
查看完整版本: JS原生自带的animate方法