输出停止和调试不起作用

时间:2014-03-26 11:35:16

标签: javascript debugging

使用" Ultimate Color Converter"就像要做的事情,我可以得到颜色模型转换为HSL但由于某种原因,当我转换HSL,整个事情打破。我甚至无法再提交它。

我还在代码中添加了一堆调试行,但它没有报告给控制台。

我可以在此处找到我当前的项目:http://codepen.io/spedwards/pen/ikJxHhttp://jsfiddle.net/spedwards/se5yU/

由于代码很长,我不会发布整个内容,而只是发布它的一部分。

 else if (type == 'hsl') {
    hsl = type;console.debug(hsl = type);

    /* START RGB */
    c = type.slice(4).split(',');console.debug('Removed first 4 chars');
    c[2] = c[2].substring(0, c[2].length - 1);console.debug('Removed last bracket');
    c = hslToRgb(c[0],c[1],c[2]);console.debug('Convert to RGB');

    rgb = 'rgb(' + c.join() + ')';console.debug('Sets RGB');
    /* END RGB */
    /* START RGBA */
    rgba = (rgb.substring(0, rgb.length - 1) + ',1)').splice(3,0,'a');console.debug('Sets RGBA');
    /* END RGBA */
    /* START HEX */
    hex = '#';console.debug('Starts hex');
    for (i=0;i<3;i++) {
      c[i] = +c[i];console.debug('Coerces to number: ' + i);
      hex += (c[i] < 16 ? "0" : "") + c[i].toString(16).toUpperCase();console.debug('Sets hex part: ' + i);
    }
    /* END HEX */
  }



function hslToRgb(h, s, l){
    var r, g, b;

    if(s == 0){
        r = g = b = l; // achromatic
    }else{
        function hue2rgb(p, q, t){
            if(t < 0) t += 1;
            if(t > 1) t -= 1;
            if(t < 1/6) return p + (q - p) * 6 * t;
            if(t < 1/2) return q;
            if(t < 2/3) return p + (q - p) * (2/3 - t) * 6;
            return p;
        }

        var q = l < 0.5 ? l * (1 + s) : l + s - l * s;
        var p = 2 * l - q;
        r = hue2rgb(p, q, h + 1/3);
        g = hue2rgb(p, q, h);
        b = hue2rgb(p, q, h - 1/3);
    }

    return [Math.round(r * 255), Math.round(g * 255), Math.round(b * 255)];
}

我应该注意,typehsl(0,0,1)或其他任何内容输入。

1 个答案:

答案 0 :(得分:0)

我发现了我的问题。我忘记将type == 'hsl'更改为colourType == 'hsl'

现在一切正常。