久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

HTML5 CANVAS:繪制文字

我們可以在HTML5 canvas上繪制繪制文字,并且可以設置文字的字體,大小和顏色。繪制文字的字體由2D上下文的font屬性來控制。,HTML5中國,中國最大的HTML5中文門戶。
1.jpg

  我們可以在HTML5 canvas上繪制繪制文字,并且可以設置文字的字體,大小和顏色。

  繪制文字的字體由2D上下文的font屬性來控制。如果你需要使用顏色來填充文字或制作描邊文字,可以使用2D上下文的fillStyle和strokeStyle屬性來完成。

  要在canvas上繪制文字,可以通過2D上下文的fillText()函數或strokeText()函數來完成。下面是一個簡單的例子:
  1. var canvas  = document.getElementById("ex1");
  2. var context = canvas.getContext("2d");

  3. context.font      = "normal 36px Verdana";
  4. context.fillStyle = "#000000";
  5. context.fillText("HTML5 Canvas Text", 50, 50);

  6. context.font        = "normal 36px Arial";
  7. context.strokeStyle = "#000000";
  8. context.strokeText("HTML5 Canvas Text", 50, 90);     
復制代碼

  下面的圖片是上面代碼的返回結果:

2.jpg

  字體和樣式
  當在HTML5 canvas上繪制文字的時候,我們可以設置文字的字體和樣式。我們可以通過一組2D上下文的font屬性來完成這些工作。這些屬性和CSS中設置字體的屬性是兼容的:
  1. [font style][font weight][font size][font face]     
復制代碼

  舉例來說,我們可以這樣設置字體:
  1. context.font = "normal normal 20px Verdana";         
復制代碼

  對于上面的這些屬性,我們可以有下面的一些可取值:

   font style可取值有:
    normal
    italic
    oblique
    inherit

   font weight可取值有:
    normal
    bold
    bolder
    lighter
    auto
    inherit
    100
    200
    300
    400
    500
    600
    700
    800
    900

   font size:字體的尺寸,單位像素。
   ont face:字體。例如:verdana, arial, serif, sans-serif, cursive, fantasy, monospace等

  需要注意的是,不是所有的瀏覽器都支持所有這些屬性的,實際使用中你需要根據實際情況做一些測試。

  繪制文字
  當在HTML5 canvas中繪制文字的時候,你可以繪制填充文字,也可以繪制描邊文字。它們分別通過2D上下文的fillText()和strokeText()函數來實現。這兩個函數的定義如下:
  1. fillText   (textString, x, y [,maxWidth]);
  2. strokeText (textString, x, y [,maxWidth]);   
復制代碼

  textString是要繪制的文字。

  x和y表示文字在canvas上的位置。x參數是文字的X軸坐標,y是文字Y軸坐標,但是它如何在Y軸上定位還要取決于文本的基線。文本的基線會在后面介紹。

  maxWidth表示文字在水平方向上的最大寬度。詳細內容接著往下看。

  下面是一個示例代碼:
  1. context.font      = "36px Verdana";
  2. context.fillStyle = "#000000";
  3. context.fillText("HTML5 Canvas Text", 50, 50);     
復制代碼

  文本的最大寬度
  可選參數maxWidth表示在canvas上繪制文字的時候,文字水平方向上最大的寬度不能大于參數指定的值。如果文本的寬度大于maxWidth指定的值,那么文字的寬度會被壓縮。注意不是被剪裁掉。下面是一個例子,在canvas中繪制兩串相同的文本,但是使用不同的maxWidth屬性:
  1. context.font      = "36px Verdana";
  2. context.fillStyle = "#000000";
  3. context.fillText("HTML5 Canvas Text", 50, 50);
  4. context.fillText("HTML5 Canvas Text", 50, 100, 200);     
復制代碼

  上面的代碼的返回結果如下,注意第二串文字被壓縮為總寬度200像素:

3.jpg

  文字的顏色
  文字的填充或描邊顏色是通過2D上下文的fillStyle和strokeStyle屬性來完成的。實現方式和圖形的方式相同。可以參考HTML5 Canvas:繪制矩形中的介紹,這里不再重復。

  測量文本的寬度
  在2D上下文中有一個函數可以用于測量文本的寬度,返回以像素為單位的結果值。這個函數不能測量高度。這個函數是measureText()。下面是一段示例代碼:
  1. var textMetrics = context.measureText("measure this");

  2. var width = textMetrics.width;   
復制代碼

  通過測量文本的寬度,我們可以知道當前的這些文字是否能夠放在當前的canvas容器中,或者其它一些用途。

  文本的基線
  文本的基線用于決定如何解釋fillText()和strokeText()函數中的y參數。通俗來講,就是文字在垂直方向上如何定位。注意,在不同的瀏覽器中,這些解釋可能會稍微有一些不同。

  可以通過2D上下文的textBaseline屬性來設置文本的基線。

  文本基線的語法為:
  1. ctx.textBaseline=
  2.    "top" || "hanging" || "middle" || "alphabetic" || "ideographic" || "bottom";      
復制代碼

  下表中列出了文本基線的可取值及其描述。
  
取值 描述
top 文本以文本中最高的字符為基線進行對齊
hanging 文本的基線是懸停線(hanging baseline)。它和top取值基本相同,多數情況下你可能看不出有什么區別
middle 文本的基線是文字的中心線
alphabetic 文本的基線是正常的文字基線
ideographic 文本的基線是水平方向的字形底部
bottom 文本以文本中最低的字符為基線進行對齊

  看了上面的描述大家會一頭霧水。現在舉例來說明。我們使用相同的y值(75)來繪制一串文本但是為每一個文字設置不同的基線值。在圖片中我們繪制一條y=75的執行來表示所有文字的基線。

4.jpg

  上面圖片的實現代碼如下:
  1. context.stokeStyle = "#000000";
  2. context.lineWidth  = 1;
  3. context.beginPath();
  4. context.moveTo(  0, 75);
  5. context.lineTo(500, 75);
  6. context.stroke();
  7. context.closePath();

  8. context.font      = "16px Verdana";
  9. context.fillStyle = "#000000";

  10. context.textBaseline = "top";
  11. context.fillText("top", 0, 75);

  12. context.textBaseline = "hanging";
  13. context.fillText("hanging", 40, 75);

  14. context.textBaseline = "middle";
  15. context.fillText("middle", 120, 75);

  16. context.textBaseline = "alphabetic";
  17. context.fillText("alphabetic", 200, 75);

  18. context.textBaseline = "ideographic";
  19. context.fillText("ideographic", 300, 75);

  20. context.textBaseline = "bottom";
  21. context.fillText("bottom-glyph", 400, 75);      
復制代碼

  文本對齊
  2D上下文的textAlignment屬性用于定義文字在水平方向上如何對齊。換句話來說,就是textAlignment屬性定義繪制文本時文本的x坐標屬性。

  textAlignment屬性的語法為:
  1. ctx.textAlign = "left" || "right" || "center" || "start" || "end";  
復制代碼

  下表中列出了textAlignment屬性各個取值及其描述。
 
取值 描述
start 文本從x左邊開始繪制
left 文本從x左邊開始繪制,和start屬性相同
center x坐標位于文本的中心
end x坐標位于文本的末尾
right x坐標位于文本的末尾,和end屬性相同

  在下面的例子中顯示了textAlignment屬性的各種取值的定位。垂直直線的x坐標為x=250,所有的字的x屬性值也是250,但是它們的textAlignment屬性取值各不相同。

5.jpg

  上面的圖片的實現代碼如下:
  1. context.stokeStyle = "#000000";
  2. context.lineWidth  = 1;
  3. context.beginPath();
  4. context.moveTo( 250, 0);
  5. context.lineTo( 250, 250);
  6. context.stroke();
  7. context.closePath();

  8. context.font      = "16px Verdana";
  9. context.fillStyle = "#000000";

  10. context.textAlign = "center";
  11. context.fillText("center", 250, 20);

  12. context.textAlign = "start";
  13. context.fillText("start", 250, 40);

  14. context.textAlign = "end";
  15. context.fillText("end", 250, 60);

  16. context.textAlign = "left";
  17. context.fillText("left", 250, 80);

  18. context.textAlign = "right";
  19. context.fillText("right", 250, 100);        
復制代碼

  本文版權屬于jQuery之家,轉載請注明出處:http://www.htmleaf.com/ziliaoku/ ... g/201507172250.html



【網站聲明】本站除付費源碼經過測試外,其他素材未做測試,不保證完整性,網站上部分源碼僅限學習交流,請勿用于商業用途。如損害你的權益請聯系客服QQ:2655101040 給予處理,謝謝支持。

相關文檔推薦

這篇文章主要介紹了基于HTML5 Canvas的3D動態Chart圖表的示例,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
本篇文章主要介紹了HTML5 Canvas 實現圓形進度條并顯示數字百分比效果示例,具有一定的參考價值,有興趣的可以了解一下
這篇文章主要介紹了HTML5 Canvas 旋轉風車繪制,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
這篇文章主要介紹了html5 canvas合成海報所遇問題及解決方案總結,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
由于實際運行環境是在瀏覽器中,因此性能還取決于JavaScript解釋器的效率,指定的FPS幀速在低性能解釋器中可能不會達到,所以這部分不是開發者能夠決定的,開發者能作的是盡可能通
本文將使用HTML5提供的VideoAPI做一個自定義的視頻播放器,需要用到HTML5提供的video標簽、以及HTML5提供的對JavascriptAPI的擴展。,HTML5中國,中國最大的HTML5中文門戶。
主站蜘蛛池模板: 欧美1级| 亚洲一区二区三区在线播放 | 日韩毛片播放 | 亚洲精品自拍视频 | 亚洲色图网址 | 国产成人精品一区二区三区网站观看 | 亚洲欧美视频 | 在线日韩视频 | 欧美三区视频 | 全免费a级毛片免费看视频免费下 | www.com久久久| 91视频网址 | 国产91九色 | 日本成人一区二区 | 在线观看国产精品一区二区 | 国产精品一区久久久 | 在线视频一区二区三区 | 国产 日韩 欧美 在线 | 欧美专区在线 | av黄在线观看 | 国产精品久久久久久久久久 | 国产精品免费在线 | jav成人av免费播放 | 久久国产精品精品国产色婷婷 | 欧美日韩国产精品一区二区 | 国产精品一二三区在线观看 | 男女网站免费 | 国产精品乱码一区二区三区 | 国产精品高清在线 | 国产成人精品免费视频大全最热 | 在线播放国产一区二区三区 | 亚洲一区二区在线播放 | 99精品久久久久久中文字幕 | 超碰成人免费 | 中文字幕乱码一区二区三区 | 污污免费网站 | 不卡的av电影 | 久久精品中文 | 欧美一区二区三区国产精品 | 久久精品无码一区二区三区 | 国产一区二区成人 |