在jQuery / javascript中,是否可以逐步增加或减少十六进制颜色值?
我想做的是这样的:
从类似for循环的方法进行调整,如下所示:
for (var i = 0; i <= 100; i++) {
console.log(i);
}
我想做类似于以下的事情:
for (var color = 000000; color <= ffffff; color++) {
console.log(color);
}
不需要任何转换。
这是否可能?我已经尝试过这个:
for (var color = parseInt('000000', 16); color <= parseInt('ffffff', 16); color++){
console.log(color.toString(16));
}
它能够正常工作,但速度非常慢(我收到了警告说脚本正在减缓网站,如果我想停止脚本可以选择停止)。
我想要这样做的原因是:我想在特定间隔内更改svg渐变的颜色。例如,如果我有以下简化的svg:
<svg>
...
<linearGradient>
<stop offset="0%" stop-color="#C8E3EF"/>
<stop offset="100%" stop-color="#C8E3EF"/>
</linearGradient>
...
</svg>
这个渐变颜色当然会呈现为一个实心颜色。现在,我想逐步将其改变,例如:
<svg>
...
<linearGradient>
<stop offset="0%" stop-color="#dfcf99"/>
<stop offset="100%" stop-color="#c5b6ec"/>
</linearGradient>
...
</svg>
在每个步骤或间隔中,我希望将颜色值逐渐靠近目标颜色(通过加减法)。最终结果应该是一种平滑的颜色动画。如果不进行转换,是否可能实现这一点?顺便说一下,这不一定要使用for循环,我只是选择它来说明我的想法。