使用 web 动画 API (waapi) 在几个元素上切换动画的播放率

问题描述

我正在尝试制作一个控制 SVG 动画的切换按钮。它需要在正常和快速播放速度之间切换。理想情况下,最终目标是还设置一个计时器,以便它也能减慢启动/停止速度 - 但我似乎无法将回放速率应用于我存储在 var 中的元素数组。我不是 JS 专家,但我认为我的数组有问题,或者只是没有定义我尝试应用 playbackRate 的实际动画。

这是我目前所拥有的: here (3)

var alldashes = document.getElementsByClassName('dash');
allwaves = Array.prototype.slice.call(alldashes);
// console.log(allwaves);

//var waveframes = {strokeDashoffset: 0,stroke: "#19D8FF",strokeDashoffset: 2000}
var timings =  {duration: 2000,easing: "linear",direction: "normal",iterations: Infinity,fill: 'both',playbackRate: 20}

// Set playback speed
function slowdown() {
  setInterval( function() {
    allwaves.playbackRate = 0.5;
  },3000);
}


// Toggle Button for Animation
var playbutton = document.getElementById('playsample');
var isPlaying = true;

function getRandomInt(min,max) {
  min = Math.ceil(min);
  max = Math.floor(max);
  return Math.floor(Math.random() * (max - min) + min);
}

playbutton.addEventListener("click",function() {
  if(isPlaying) {
    console.log("fast");  
    
    allwaves.forEach(function(el,i) {
    timings.delay = i * getRandomInt(0,500);
      el.animate([
        {strokeDashoffset: 0},{stroke: "#19D8FF"},{strokeDashoffset: 2000}
      ],timings);
      });
    
    
} else {
  console.log("slow");
  slowdown();


}
isPlaying = !isPlaying;
});


播放按钮对每个元素的动画应用随机延迟..但减速功能似乎没有任何效果

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...