[HTML] 使用anime.js实现Win10 加载条动画的样式

预览

上一篇中我介绍了使用anime.js实现win10加载圆环的动画,这次我们实现的是win10加载条的动画,这个动画你也应该在Win10上许多地方都能看到,下面就来看预览吧

WPF 中原生样式 JS样式
在这里插入图片描述 在这里插入图片描述
源码

话不多说,相信看到效果你也会发现,因为有WPF版本的参数作为基础,JS版本实现的已经非常接近原生样式了,下面就直接上JS的源码 ,函数生成的是一个Lodingbar 对象,具体使用请参考anime.js的timeline

/**
 * @param  {} size
 * @param  {} dotsize
 * @param  {} color
 * @param  {} autosize
 */
function CreateLodingBar(size, dotsize, color, autosize) {
   
  var bar = Object();

  //#region Create Object

  function CreateBarStyle(size) {
   
    return "display:block;" + "position:absolute;" + "overflow:hidden;" + ("width:" + size.w + "px;") + ("height:" + size.h + "px;");
  }

  function CreateTrackStyle(dotsize) {
   
    return "display:block;" + "position:absolute;" + ("width:" + dotsize + "px;") + ("height:" + dotsize + "px;");
  }

  function CreateDotSize(size, dotsize, color) {
   
    return (
      "display:block;" +
      "position:absolute;" +
      ("top:" + (size.h - dotsize) / 2 + "px;") +
      ("width:" + dotsize + "px;") +
      ("height:" + dotsize + "px;") +
      ("border-radius:" + dotsize / 2 + "px;") +
      ("background-color:" + color)
    
当然,我可以使用Anime.js来为你创建一个具有连续动作的动态火柴人动画。请确保已经在HTML文件中引入了Anime.js库,然后可以使用以下代码: ```html <!DOCTYPE html> <html> <head> <title>火柴人动画</title> <style> #canvas { width: 400px; height: 400px; border: 1px solid black; } </style> </head> <body> <div id="canvas"></div> <script src="https://cdnjs.cloudflare.com/ajax/libs/animejs/3.2.1/anime.min.js"></script> <script> const canvas = document.getElementById('canvas'); const animation = anime.timeline({ autoplay: true, loop: true, }); const drawStickMan = () => { const stickMan = document.createElement('div'); stickMan.classList.add('stickman'); canvas.appendChild(stickMan); }; drawStickMan(); animation .add({ targets: '.stickman', translateY: [ { value: 0, duration: 500 }, { value: -80, duration: 300 }, { value: 0, duration: 500 }, ], rotateZ: [ { value: 0, duration: 500 }, { value: 360, duration: 1000 }, ], easing: 'linear', }) .add({ targets: '.stickman', translateY: [ { value: 0, duration: 500 }, { value: -40, duration: 300 }, { value: 0, duration: 500 }, ], rotateZ: [ { value: 0, duration: 500 }, { value: -360, duration: 1000 }, ], easing: 'linear', }) .add({ targets: '.stickman', translateY: [ { value: 0, duration: 500 }, { value: -80, duration: 300 }, { value: 0, duration: 500 }, ], rotateZ: [ { value: 0, duration: 500 }, { value: 360, duration: 1000 }, ], easing: 'linear', }); </script> </body> </html> ``` 在上述代码中,我们使用了Anime.js来创建一个时间轴(timeline),并为火柴人动画添加了一系列连续的动作。在`drawStickMan`函数中,我们创建了一个`div`元素,添加了`stickman`类,并将其附加到Canvas容器中。然后,我们使用Anime.js的时间轴来定义火柴人的动作序列。每个动作都使用`targets`属性指定要应用动画的元素,这里是具有`stickman`类的div元素。通过指定`translateY`和`rotateZ`属性,我们定义了火柴人在垂直和水平方向上的移动和旋转动画效果。我们还设置了持续时间和缓动效果。 你可以根据需要调整动画效果,例如修改持续时间、添加更多动作等。同时,你也可以通过添加CSS样式来美化火柴人的外观。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值