久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

canvas學(xué)習(xí)--關(guān)于css設(shè)置canvas畫(huà)布大小的問(wèn)題

 光年之外_殊拓 2018-09-09

canvas的繪制會(huì)是畫(huà)布大小為準(zhǔn)的。canvas的默認(rèn)畫(huà)布大小為300×150,。

通常,,我們可能想要改變畫(huà)布的大小,以下是大家最容易想到的方法:

//方法一:內(nèi)聯(lián)樣式
<canvas style="width:450px;height:300px;"></canvas>
//方法二:內(nèi)部樣式
<style type="text/css">
    #myCanvas {
        width: 450px;
        height:300px;
    }
</style>
...
<canvas id="myCanvas"></canvas>
//方法三:外部樣式
canvas.css代碼
#myCanvas {
    width: 450px;
    height:300px;
}
引入html中
<link rel="stylesheet" href="canvas.css" />
...
<canvas id="myCanvas"></canvas>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

但是,,執(zhí)行代碼后,,卻得不到我們想要的結(jié)果,如:

<style type="text/css" media="screen">
    #myCanvas {
        background-color: #ccc;
        width: 450px;
        height: 300px;
    }
</style>
<canvas id="myCanvas"></canvas>
<script>
    var context=document.getElementById("myCanvas").getContext("2d");
    context.fillStyle = "red";
    context.fillRect(0,0,100,100);
</script>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

按照我們的想法,,至少畫(huà)布內(nèi)有個(gè)背景色為紅色的正方形,,但是,事實(shí)上卻不是這樣的: 
這里寫(xiě)圖片描述 
很顯然,,紅色部分并不是一個(gè)正方形,,而是一個(gè)矩形。

這是因?yàn)?,使用css設(shè)置畫(huà)布的大小會(huì)導(dǎo)致畫(huà)布按比例縮放你設(shè)置的值,。(css只是設(shè)置canvas在屏幕的顯示大小)

上述例子中,,用css設(shè)置的width為450,,height為300,對(duì)應(yīng)默認(rèn)的畫(huà)布大小300×150,,寬高比例分別為1.5和2,,所以我們?cè)O(shè)置的矩形的寬(100px)高(100px)實(shí)現(xiàn)顯示的會(huì)是寬:100px×1.5=150px;高:100px×2=200px,;測(cè)量如下為: 
這里寫(xiě)圖片描述 
這里寫(xiě)圖片描述

那么如何來(lái)改變canvas的默認(rèn)大小呢,?

//方法一
<canvas width="450px" height="350px"></canvas>
//方法二:通過(guò)js實(shí)現(xiàn)
<canvas id="myCanvas"></canvas>
...
<script>
    var ele = document.getElementById("myCanvas);
    ele.width="450";//注意:沒(méi)有單位
    ele.height="300";//注意:沒(méi)有單位
    var context= ele.getContext("2d");
    context.fillStyle="red";
    context.fillRect(0,0,100,100);
</script>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

上述設(shè)置的結(jié)果就是,會(huì)在畫(huà)布上出現(xiàn)一個(gè)邊長(zhǎng)為100px的正方形,。

設(shè)置畫(huà)布大小后,,樣式會(huì)重置。

通過(guò)canvas元素的getContext方法來(lái)獲取其上下文,,但是有一點(diǎn)需要注意的是,,getContext是DOM對(duì)象的方法,,也就是原生js方法,不能用jQuery對(duì)象直接獲取,。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多