javascript - 用于实现淡入的 for 循环中的 setInterval
问题描述
我已经通过更改不透明度值实现了以下淡入代码,到目前为止该值有效,但不确定为什么我们需要 curOpacity 将值保存在外部,
工作代码
for(let i=0;i<squares.length;i++) {
var curOpacity = 0;
(function(index){
setInterval(function(){
curOpacity += 0.1;
squares[index].style.opacity = curOpacity;
}, 200)
})(i);
}
我第一次没有使用 curOpacity 变量,它不起作用,你能告诉我原因和与之相关的主题吗?
不工作的代码,
for(let i=0;i<squares.length;i++) {
(function(index){
setInterval(function(){
squares[index].style.opacity += 0.1;
}, 200)
})(i);
}
解决方案
squares[index].style.opacity
是一个字符串。在尝试对其进行数学运算之前将其转换为数字:
squares[index].style.opacity = +squares[index].style.opacity + 0.1;
推荐阅读
- c++ - 当我编译 XG-Bosst 时,出现“错误:'Split'不是'xgboost::common'的成员......”的错误
- excel-formula - 如何在组中选择一个随机数并使该选择的数字在其他组中唯一?
- microsoft-graph-api - 尝试从 microsoft graph 检索访问令牌响应在浏览器中失败
- excel - Python 单元格颜色未在 Excel 工作表中更新
- python - 几秒钟前如何创建音频缓冲区以访问麦克风输入
- python - 你可以在python中同时运行多个条件吗?
- exception - OCaml 中的多态异常参数
- python - 如何编写仅采用正整数的最大公分母函数?(Python)
- r - 如何离散化R中的多列
- docker - 遵循 docker 教程,但教程和实际输出不同