婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識(shí)庫 > Canvas中設(shè)置width與height的問題淺析

Canvas中設(shè)置width與height的問題淺析

熱門標(biāo)簽:地圖標(biāo)注軟件打印出來 電話機(jī)器人技術(shù) 智能電銷機(jī)器人被禁用了么 高德地圖標(biāo)注商戶怎么標(biāo) 黃石ai電銷機(jī)器人呼叫中心 惡搞電話機(jī)器人 ok電銷機(jī)器人 欣鼎電銷機(jī)器人 效果 如何查看地圖標(biāo)注

最近因?yàn)楣ぷ餍枰跃蛯W(xué)了一下Html中的Canvas標(biāo)簽。

Canvas是HTML5新增的組件,它就像一塊幕布,可以用JavaScript在上面繪制各種圖表、動(dòng)畫等。

沒有Canvas的年代,繪圖只能借助Flash插件實(shí)現(xiàn),頁面不得不用JavaScript和Flash進(jìn)行交互。有了Canvas,我們就再也不需要Flash了,直接使用JavaScript完成繪制。

當(dāng)我看了一下教程后,自己寫了一個(gè)hello world的時(shí)候,麻煩事就出現(xiàn)了。看下面代碼:

<!DOCTYPE html>
<html lang="en">
<body>
<canvas id="canvas1" style="width: 200px;height: 200px; border:1px solid black;">
</canvas>
<script>
    var oC = document.getElementById('canvas1');
    var ctx = oC.getContext("2d");
    ctx.moveTo(0, 0);
    ctx.lineTo(200, 200);
    ctx.stroke();
</script>
</body>
</html>

上面代碼的意思,是要在一個(gè)width和height各為200px的canvas上畫一條直線,該直線的起點(diǎn)為(0,0),終點(diǎn)為(200,200);

然而瀏覽器畫出來的圖像卻是:

一看這圖~怎么是這樣的斜度?不應(yīng)該啊~本應(yīng)該是一個(gè)對(duì)角線才對(duì)啊~~

后來差了一下資料才知道,canvas標(biāo)簽設(shè)置width和height的時(shí)候,有以下幾種方式和產(chǎn)生的后果:

Canvas元素默認(rèn)寬 300px, 高 150px, 設(shè)置其寬高可以使用如下方法:
方法一:
1 <canvas width="500" height="500"$amp;>amp;$lt;/canvas>
方法二:使用HTML5 Canvas API操作
1 var canvas = document.getElementById('欲操作canvas的id');
2 canvas.width = 500;
3 canvas.width = 500;

若通過如下方法設(shè)置寬高,那么Canvas元素將由原來大小被拉伸到所設(shè)置的寬高:
方法一:使用CSS 會(huì)被拉伸
1 #欲操作canvas的id{
2     width:1000px;
3     height:1000px;
4 }

也包含了行間樣式中的 style="" 。也就是上面的例子,也會(huì)產(chǎn)生拉伸的情況。
方法二:使用HTML5 Canvas API操作 會(huì)被拉伸
1 var canvas = document.getElementById('欲操作canvas的id');
2 canvas.style.width = "1000px";
3 canvas.style.height = "1000px";
方法三 :用jquery的$("#id").width(500);會(huì)被拉伸

其它:canvas的width和height也不能用百分比表示。canvas會(huì)將百分值當(dāng)成數(shù)值顯示

 所以,通過上面的資料便可知道其原因就是我上面例子中代碼會(huì)讓canvas的寬高被拉伸了,從而使得圖像跟預(yù)想的不一致的。

現(xiàn)在我重寫了一份正確設(shè)置canvas寬高大小的代碼例子:

<!DOCTYPE HTML>
<html>
<body>
<canvas id="myCanvas" width="200" height="200" style="border:1px solid black;">
    Your browser does not support the canvas element.
</canvas>
<script type="text/javascript">
    var c = document.getElementById("myCanvas");
    var cxt = c.getContext("2d");
    cxt.moveTo(0, 0);
    cxt.lineTo(200, 200);
    cxt.stroke();
</script>
</body>
</html>

結(jié)果:

結(jié)束。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

標(biāo)簽:聊城 萍鄉(xiāng) 盤錦 赤峰 阿壩 中山 綏化 金昌

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Canvas中設(shè)置width與height的問題淺析》,本文關(guān)鍵詞  Canvas,中,設(shè)置,width,與,height,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Canvas中設(shè)置width與height的問題淺析》相關(guān)的同類信息!
  • 本頁收集關(guān)于Canvas中設(shè)置width與height的問題淺析的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 读书| 齐河县| 久治县| 荥阳市| 丰原市| 嘉禾县| 城固县| 宁陵县| 闻喜县| 呼和浩特市| 巫山县| 望奎县| 隆德县| 香河县| 盐山县| 盐津县| 宕昌县| 长岭县| 武安市| 土默特左旗| 柘城县| 吉林省| 沁阳市| 绍兴县| 长宁区| 北票市| 太仆寺旗| 威信县| 扬中市| 金坛市| 禄丰县| 沧州市| 四平市| 长沙县| 南木林县| 湟源县| 防城港市| 兰州市| 五常市| 湟源县| 清丰县|