佳木斯湛栽影视文化发展公司

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

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

熱門標簽:美圖手機 網(wǎng)站建設(shè) 阿里云 智能手機 硅谷的囚徒呼叫中心 百度競價點擊價格的計算公式 檢查注冊表項 使用U盤裝系統(tǒng)

前言

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

Canvas 的width height屬性

1、當使用width height屬性時,顯示正常不會被拉伸;如下

<canvas id="mycanvas" width="300" height="300">瀏覽器不支持Canvas,請升級或改用其它瀏覽器!</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>

運行效果如下,為對角線

 

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

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

運行效果

 

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

Canvas 是一個畫板和一張畫紙,畫板相當于一個容器,畫圖/作業(yè)是在畫紙上進行的,

畫板和畫紙的默認寬高是300*150,當畫紙與畫板寬高相等時,圖像不會被拉伸,當畫紙與畫板寬高不一樣時,圖像就會被拉伸(變形)。

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

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

 

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

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

 

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

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

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

總結(jié)

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

標簽:懷化 山南 湖北 黃山 煙臺 通遼 賀州 湘潭

巨人網(wǎng)絡(luò)通訊聲明:本文標題《H5 canvas中width、height和style的寬高區(qū)別詳解》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    寿光市| 栾川县| 永清县| 南靖县| 江陵县| 安陆市| 河东区| 中西区| 仲巴县| 光泽县| 沿河| 金乡县| 林甸县| 京山县| 黑河市| 张家界市| 西城区| 建瓯市| 惠州市| 黄龙县| 余干县| 池州市| 山东省| 建湖县| 余姚市| 承德市| 普兰店市| 安国市| 河北省| 杂多县| 阳东县| 望奎县| 扎鲁特旗| 乌审旗| 昭觉县| 陵水| 青州市| 华容县| 石棉县| 丁青县| 大名县|