Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery-HSL彩色背景_Javascript_Jquery_Css_Hsl - Fatal编程技术网

Javascript jQuery-HSL彩色背景

Javascript jQuery-HSL彩色背景,javascript,jquery,css,hsl,Javascript,Jquery,Css,Hsl,我在使用Javascript/jQuery时遇到了一个奇怪的问题。我需要使用下面编写的函数使用HSL颜色模型更新背景颜色: function updateColorPreviewHSV(hsv){ var hue = Math.round(hsv.getHue(), 0); var saturation = Math.round(hsv.getSaturation()*100, 0); var value = Math.round(hsv.getValue()*100,

我在使用Javascript/jQuery时遇到了一个奇怪的问题。我需要使用下面编写的函数使用HSL颜色模型更新背景颜色:

function updateColorPreviewHSV(hsv){
    var hue = Math.round(hsv.getHue(), 0);
    var saturation = Math.round(hsv.getSaturation()*100, 0);
    var value = Math.round(hsv.getValue()*100, 0);

    var hsvText = "hsl("+hue+","+saturation+"%,"+value+"%)";
    console.log(hsvText);
    $("#pickedColor").css({"background": hsvText });
}
给定的输出很好,但不会改变背景颜色。 hsvText变量的输出示例:

hsl(336,74%,100%)
hsl(340,73%,100%)
hsl(343,73%,100%)
hsl(307,73%,100%)
只有在我手动将值键入变量时才会发生更改,如下所示:

function updateColorPreviewHSV(hsv){

    var hue = 100;
    var saturation = 70;
    var value = 40;

    var hsvText = "hsl("+hue+","+saturation+"%,"+value+"%)";
    console.log(hsvText);
    $("#pickedColor").css({"background": hsvText });
}

它是有效的。那么-为什么第一个函数不想正常工作?我哪里出错了?

你的脚本很好用。只是

hsl(336,74%,100%)
hsl(340,73%,100%)
hsl(343,73%,100%)
hsl(307,73%,100%)
所有的颜色都是白色的,所以你看不出有什么不同


@crc442-您很接近,但没有解释错误的确切位置

谢谢大家的回答,我找到了“bug”

更清楚的解释是: 正如您所说,脚本是可以的,但可视化是不好的。我没有提到第一个预览div被设置为白色

HSV和HSL是两种不同的颜色模型(一开始我假设它们是相同的)。当HSV从色调变为黑色时,HSL从白色通过色调变为黑色


因此,在HSL中,最后一个变量100%(亮度)为白色。这就是为什么我总是得到不变的背景色。但是当亮度降低50%时,我在HSV模型中得到100%的值,所有的工作都像一个符咒:)

请参阅。我认为它工作得很好…@Taleeb-感谢jsFiddle,但价值观正在动态变化。手动输入-工作,十六进制和RGB模式-工作,但HSL-不,我想知道为什么。如果没有合理的理由,我会设法解决它,但这是一种痛苦的方式。