2015-02-09 124 views
0

我正嘗試用白色和動態顏色之間的單個線性漸變填充Canvas元素,該顏色將在運行時確定。將浮點數轉換爲RGBA CSS顏色的有效Alpha值

爲此,我有這個函數,它接收一個浮點數作爲參數,我試圖將該變量插入到RGBA顏色的alpha值中。

function setCanvas(fraction) { 

    fraction = fraction.toFixed(2); 
    context.rect(0, 0, canvas.width, canvas.height); 
    var grad = context.createLinearGradient(0, 0, canvas.width, canvas.height); 
    grad.addColorStop(0, '#FFFFFF'); 
    grad.addColorStop(1, 'rgba(255, 255, 255, fraction)'); // SYNTAX ERROR 
    context.fillStyle = grad; 
    context.fill(); 

    } 

這是日誌中的錯誤消息:

未捕獲的SyntaxError:未能執行 'addColorStop' 上 'CanvasGradient':所提供的值('RGBA(255,255,255,分數) ')不能被解析爲一種顏色。

我可以登錄分數的價值,它始終是0.0和1.0,這是documentation說,它需要什麼......但如果我靜態輸入相同的值(0.76,例如)之間的歸一化到我的RGBA顏色,然後一切順利...

我是否錯過了明顯的東西?爲什麼這不起作用?

+0

爲什麼downvote? – 2015-02-10 02:16:26

回答

1

我覺得你的意思做這個

grad.addColorStop(1, 'rgba(255, 255, 255, ' + fraction+ ')'); 

你包括字符串部分,而不是價值。

+0

BOOM。謝謝,就是這樣......我不用JS玩太多,而且還沒有用到動態變量類型,所以這個字符串的東西總是會抓住我......我會盡快接受答案...... – 2015-02-09 08:47:53