首页 > 解决方案 > JavaScript 计数器变量在两个值之间波动

问题描述

我试图在 0 和 2 的两个范围之间连续波动变量“z”0.1。当它达到最大值 2 时,我希望变量“z”递减。当它达到 0 的最小值时,我希望变量“z”增加。到目前为止,我的代码所做的只是返回数字 1。

注意:我也在 github.com/mattdesl 的 canvas-sketch 上使用这个

let z = 1;
let count = 0.1;

setInterval(function(){
  if(z == 2) count *= -1;
  if(z == 0) count *= +1;
  return z += count;
}, 1000);

console.log(z);

标签: javascriptanimationsetintervalincrementgenerative-programming

解决方案


尝试这个:

let z = 1;
let increment = 0.1

setInterval(function(){
  if(z === 2) increment = -0.1;
  if(z === 0) increment = 0.1;
  z = Math.round((z + increment) * 10) / 10;

  console.log(z);
}, 1000);

z线在这里很关键。试试 z += increment ,你会得到 JS 舍入错误。所以我们只需要确保在添加后将数字清除到小数点后一位。


推荐阅读