我有一个颜色选择器,返回的色调值是0到1之间的数字.为了在色调上创建变化,我添加.2为20%,.8为80%等.
如何保持数字围绕圆圈,这样当数字超过1时,它会减去1.如何将此数字设为这个数字:1.73540012511 ---> .7354
我尝试使用"美分"javascript,(http://www.irt.org/script/6.htm),但返回值大于1:http: //jsfiddle.net/Se9Dn/
我不能使用Math.min,因为我希望1.2成为.2(当它们达到1时,颜色都不会变成红色).
谢谢.:)
编辑: 确认解决方案,添加了舍入.假设你有从Farbtastic返回的HSL颜色(Hue,Saturation,Luminosity)并且想要以数学方式调整Hue:
hslcolor = (.73802938, .59832908, .948987);
colorStep = .2;
newcolor[0] = Math.round ( ((1*colorStep +hslcolor[0])%1)*10000 ) /10000;
Run Code Online (Sandbox Code Playgroud)
注意那些括号在那里非常棘手.
您可以使用模运算符%(MDN文档).
所以要添加,例如0.8:
result = (result + 0.8) % 1;
Run Code Online (Sandbox Code Playgroud)
编辑
JavaScript的模运算符实际上更多是余数运算符.
符号"x modulo y"(y必须是有限且非零)计算与y(或零)相同符号的值k,使得abs(k)<abs(y)和x-k = q×y整数q.
| 归档时间: |
|
| 查看次数: |
394 次 |
| 最近记录: |