2011-04-22 50 views
4

下面是代碼:HTML畫布 - 文字陰影不適用於Mac?

var surface = document.getElementById("myCanvas"); 
    if (surface.getContext) { 
     var context = surface.getContext('2d'); 

     context.shadowOffsetX = 2; 
     context.shadowOffsetY = 2; 
     context.shadowBlur = 5; 
     context.shadowColor = "rgba(0, 0, 0, 0.5)"; 

     context.textBaseline = "top"; 
     context.font = "125px helvetica"; 
     context.textAlign = "center"; 

     var gradient = context.createLinearGradient(0, 0, 0, 150); 
     gradient.addColorStop(0, "rgb(22,28,106)"); 
     gradient.addColorStop(1, "rgb(19,25,98)"); 

     context.fillStyle = gradient; 
     context.fillText("Some Title", 450, 10); 
} 

陰影看起來就像一個1px的輪廓...任何想法?

現場演示:http://jsfiddle.net/simevidas/MDgR3/

+1

看起來不錯:http://jsfiddle.net/simevidas/MDg R3/ – 2011-04-22 22:13:38

+0

@ŠimeVidas你在那個jsfiddle中看到了一個影子嗎?我不是... – thatmiddleway 2011-04-22 22:19:42

+0

@jtm我的含笑是它在我的瀏覽器,但不是在你的':)'我正在使用Chrome 10 ... – 2011-04-22 22:22:40

回答

4

看起來像Safari是壞了。如果去掉漸變代碼,然後Safari瀏覽器正確添加文字陰影:

http://jsfiddle.net/hv5zR/1/

如果您繪製陰影,然後繪製了它工作在Safari上的梯度....這是一個可怕的技巧,但它的工作原理:

http://jsfiddle.net/thebeebs/nUbZX/

+1

不錯!我將此作爲bug提交給webkit團隊。這不應該是讓這個工作起作用的唯一方法。 – thatmiddleway 2011-04-28 14:29:16