濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > H5 canvas中width、height和style的寬高區(qū)別詳解

H5 canvas中width、height和style的寬高區(qū)別詳解

熱門(mén)標(biāo)簽:鶴壁手機(jī)自動(dòng)外呼系統(tǒng)怎么安裝 ai電銷(xiāo)機(jī)器人連接網(wǎng)關(guān) 濟(jì)南辦理400電話 農(nóng)村住宅地圖標(biāo)注 中紳電銷(xiāo)智能機(jī)器人 漳州人工外呼系統(tǒng)排名 威海營(yíng)銷(xiāo)外呼系統(tǒng)招商 鄭州電銷(xiāo)外呼系統(tǒng)違法嗎 跟電銷(xiāo)機(jī)器人做同事

前言

最近在學(xué)習(xí)canvas屬性中遇到一個(gè)小問(wèn)題,就是canvas的width和height,通過(guò)查找相關(guān)的資料終于解決,所以下面將解決的過(guò)程分享出來(lái)給大家,下面話不多說(shuō)了,來(lái)一起看看詳細(xì)的介紹吧

Canvas 的width height屬性

1、當(dāng)使用width height屬性時(shí),顯示正常不會(huì)被拉伸;如下

<canvas id="mycanvas" width="300" height="300">瀏覽器不支持Canvas,請(qǐng)升級(jí)或改用其它瀏覽器!</canvas>
<script type="text/javascript">
    var canvas = document.getElementById("mycanvas"),
        ctx = canvas.getContext('2d');
    ctx.moveTo(0,0);
    ctx.lineTo(300,150);
    ctx.stroke();
</script>

運(yùn)行效果如下,為對(duì)角線

 

2、使用style時(shí)圖像會(huì)被拉伸(變形),

<style>
         
        #mycanvas {
            width: 150px;
            height: 150px;
        }
    </style>

運(yùn)行效果

 

如何理解???可以這么理解————

Canvas 是一個(gè)畫(huà)板和一張畫(huà)紙,畫(huà)板相當(dāng)于一個(gè)容器,畫(huà)圖/作業(yè)是在畫(huà)紙上進(jìn)行的,

畫(huà)板和畫(huà)紙的默認(rèn)寬高是300*150,當(dāng)畫(huà)紙與畫(huà)板寬高相等時(shí),圖像不會(huì)被拉伸,當(dāng)畫(huà)紙與畫(huà)板寬高不一樣時(shí),圖像就會(huì)被拉伸(變形)。

1, width 和 height 屬性是設(shè)定畫(huà)板和畫(huà)紙的寬高,

如: width=”300” height=”300” 即畫(huà)板的寬高是300*300,畫(huà)紙的寬高也是300*300,作業(yè)的300*300 的對(duì)角線圖像就不會(huì)被拉伸

 

2, style樣式 里設(shè)定的是僅畫(huà)板的寬高,畫(huà)紙的寬高還是為默認(rèn)值300*150,

(以上圖為例)因此所作業(yè)的300*300的對(duì)角線圖像僅有一部分畫(huà)在畫(huà)紙上,如下:

 

Btw 畫(huà)紙不會(huì)讓畫(huà)板就這么空出一片,于是畫(huà)紙連同圖像就要一起拉伸到跟畫(huà)板大小一樣。在此例子當(dāng)中,畫(huà)紙寬與畫(huà)板寬都為30,而高為畫(huà)板的一半,因此只需將高拉伸一倍即可,so 圖像也一起被拉伸變瘦,X方向不變,Y方向增至一倍, 所以就得到了變形之后的圖片

引用 //www.jb51.net/html5/643939.html 的一段總結(jié)

關(guān)于HTML5中Canvas的寬、高設(shè)置問(wèn)題
Canvas元素默認(rèn)寬 300px, 高 150px, 設(shè)置其寬高可以使用如下方法(不會(huì)被拉伸):
方法一:
       <canvas width="500" height="500"></canvas>
方法二:使用HTML5 Canvas API操作 OK
       var canvas = document.getElementById('欲操作canvas的id');
       canvas.width = 500;
       canvas.width = 500;
若通過(guò)如下方法設(shè)置寬高,那么Canvas元素將由原來(lái)大小被拉伸到所設(shè)置的寬高:
方法一:使用CSS 會(huì)被拉伸
     #欲操作canvas的id{
          width:1000px;
          height:1000px;
     }
方法二:使用HTML5 Canvas API操作 會(huì)被拉伸
      var canvas = document.getElementById('欲操作canvas的id');
      canvas.style.width = "1000px";
      canvas.style.height = "1000px";
方法三 :用jquery的$("#id").width(500);會(huì)被拉伸
其它:canvas的width和height也不能用百分比表示。canvas會(huì)將百分值當(dāng)成數(shù)值顯示

總結(jié)

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

標(biāo)簽:惠州 甘南 營(yíng)口 咸陽(yáng) 文山 蘇州 萍鄉(xiāng) 紅河

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《H5 canvas中width、height和style的寬高區(qū)別詳解》,本文關(guān)鍵詞  canvas,中,width,height,和,style,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《H5 canvas中width、height和style的寬高區(qū)別詳解》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于H5 canvas中width、height和style的寬高區(qū)別詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    平利县| 磐石市| 无极县| 凤阳县| 南川市| 金堂县| 当雄县| 九龙城区| 阳曲县| 原平市| 行唐县| 离岛区| 阆中市| 缙云县| 多伦县| 昆明市| 青浦区| 垫江县| 车致| 鹤壁市| 岗巴县| 财经| 富裕县| 贡觉县| 凤山市| 枣庄市| 井研县| 什邡市| 丰都县| 那坡县| 阆中市| 龙山县| 广州市| 平昌县| 惠水县| 烟台市| 柳河县| 车险| 郧西县| 封丘县| 永德县|