1. 程式人生 > >html5之canvas困惑 在canvas標籤內需要設定了寬跟高,如果在css中設定同樣的寬跟高,畫出來的影象變形了?

html5之canvas困惑 在canvas標籤內需要設定了寬跟高,如果在css中設定同樣的寬跟高,畫出來的影象變形了?

<canvas class="cvs"></canvas>

遇到的問題:

如css 中設.cvs{width:500px;height:400px;},也就是css改變了canvas的尺寸後,本來是可以畫出一個圓來,現在卻是一個扁平的圓,為什麼呀?
如圖:


什麼原因:(百度上說的)

當你在支援html5 canvas的瀏覽器下檢視頁面的時候,你會看到一個大小為300px*300px(BTW:canvas預設大小為:300px*150pxcanvas)相當於一張圖片,css設定的屬性相當於
對這張圖片進行拉伸變化
要改變canvas的大小,應當用這種方式:
使用js來改變
<canvas width=500 height=400></canvas>

對應的javascript是
canvas=document.getElementsByTagName('canvas')[0];
canvas.width=500;
canvas.height=400;

換句話說,你現在畫出的圓實際顯示的是在預設大小上經過拉伸變換的樣子。
自己的理解:

canvas是一張畫布,就像一張圖片那樣,預設的圖片大小事300*150,但是我們在css樣式中設定了canvas,就是把圖片給拉伸變換了,於是我們不一樣的圖片。就像我們開啟平時一張圖片,然後進行拉伸般,於是圖片就變形。
所以,畫布的寬跟高,最好還是直接在canvas標籤裡面設定了,這樣一來,就直接改變了預設的畫布寬跟高的值。

相關推薦

html5canvas困惑canvas標籤內需設定如果css設定同樣出來影象變形

<canvas class="cvs"></canvas>遇到的問題:如css 中設.cvs{width:500px;height:400px;},也就是css改變了canvas的尺寸後,本來是可以畫出一個圓來,現在卻是一個扁平的圓,為什麼呀?如圖:什

KingDZ學HTML5三 畫布Canvas

can 說明 padding phone 灰色 定義 ring explore 區域 繼續更新我們的教程,哈哈,個人覺得 ,這個HTML5 的官方 LOGO 怎麽看,怎麽像變形金剛。 神馬關系~~~~~~~~~~~ <Canvas> 是HTML5中新出現的一

KingDZ學HTML5七 探究Canvas各種特效

document doc 特效 方向 旋轉 element 不解釋 str 呵呵 初看到題目大家怎麽個反應啊,哇塞,這麽多啊,可是看完這節課程之後,你會發現這些功能不過如此。 1》移動 translate(x, y) 簡單的說明一下 ,X 左右偏移量 Y 上下偏移

html5canvas畫圖 1.寫字板功能

load har line client ctype 監聽事件 tle ntb csdn 寫字板事例: 寫字板分析:1.點擊鼠標開始寫字(onmosedown)2.按下鼠標寫字(onmousemove)3.松開鼠標,停下寫字(

HTML5canvas元素

矩形 色值 body www rip white col ble script 定義和用法 fillStyle 屬性設置或返回用於填充繪畫的顏色、漸變或模式。 默認值: #000000 JavaScript 語法: context.fillStyle=color|gr

HTML5Canvas 2D入門3

知識準備 - 座標系   在真正開始總結變換之前,我們需要先了解一下canvas的相關座標系知識。 “畫素座標系”:在HTML中,我們會設定canvas的屬性:width和height,它們是以畫素為單位的,它們描述了canvas最終的呈現區域,我形象稱之為

HTML5Canvas 2D入門2

canvas只支援一種基本形狀——矩形,所有其它形狀都是通過一個或多個路徑組合而成,甚至是基本的矩形也可以通過路徑組合成。 一、設定畫筆屬性   設想我們生活中畫圖的樣子,我們首先是選取合適的顏料和筆,一樣的道理,在canvas中畫圖同樣也是根據需要,不斷的

HTML5Canvas 2D入門1

Canvas歷史   canvas是一個新的HTML元素,這個元素可以被指令碼語言(通常是JavaScript)用來繪製圖形。例如可以用它來畫圖、合成圖象、或做動畫。canvas最先在蘋果公司(Apple)的Mac OS X Dashboard上被引入,而後被

HTML5Canvas時鐘小程式

這一段時間有空在看Canvas,由於以前開發過ActionScript版本的時鐘,想著Canvas也一定能夠實現,所以花了幾個小時來調了一下,最終出來了,很是開心,所以在這裡記錄一下: 首先奉上效果圖,雖然比較醜,沒有用CSS過多的去渲染,這裡完成了基本功能

html5Canvas繪製刮刮卡

$(function(){ draw(); }) function draw(){ var c=document.getElementById("myCanvas");//定義一個遮罩層 var clientWidth = $(document).width();//獲取瀏覽器當前的

HTML5 Canvas (案例)

**星星閃動動畫** 1、如何輪播一張圖片上的序列幀 2、canvas的幾個主要繪圖API:drawImage()、save()、restore()。 3、如何處理滑鼠事件 筆記: Window API: 迴圈呼叫三種方法: requestAnimFrame(fcunt

安卓鳥學Html5 Canvas繪圖實踐一

前言 預言帝喬布斯說HTML5將會改變網際網路的生態環境,自從2014年html5的火爆然後對移動開發者是一個衝擊,很多公司紛紛轉戰HTML5個人覺得對我們是一個考驗,然後有朋友去面試直接問會nodejs不,然後 也有朋友轉成hybird開發了,說實在的

HTML5 界面元素 Canvas 參考手冊

mea targe strong 元素 vertical size 人生 track lar HTML5 界面元素 Canvas 參考手冊太陽火神的漂亮人生 (http://blog.csdn.net/opengl_es)本文遵循“署名-非商業用途-保持一致”創作公用協議

我的啟蒙--HTML5 第三章 Canvas

上下文 javascrip blog 畫筆 str ava head tro top canvas     基本用法     要使用canvas元素,必須設置其width和height屬性!並且需要添加一些樣式才能在頁面上看見。    2d上下文:要在canvas上畫圖,需

HTML5 file API加canvas實現圖片前端JS壓縮並上傳 (轉載)

www. 手機 回調 pre lan 瀏覽器中 rdp 效果 二進制 一、圖片上傳前端壓縮的現實意義 對於大尺寸圖片的上傳,在前端進行壓縮除了省流量外,最大的意義是極大的提高了用戶體驗。 這種體驗包括兩方面: 由於上傳圖片尺寸比較小,因此上傳速度會比較快,交互會更

HTML5特性&&canvas

a10 img char rst testin hit mov eset lineto 1.HTML5是由W3C(萬維網聯盟,專註於XHTML 2.0)和WHATWG(專註於web表單和應用程序)共同合作的結果,2014年10月完成標準制定! 主要設計目的:為了在移動設備上

HTML5(三)canvas(3)

簡易祖瑪遊戲 <!DOCTYPE html> <html> <head>         <meta charset="utf-8">         <title></title> </head&

html5 新元素和Canvas

(1) HTML5 新元素 自1999年以後HTML 4.01 已經改變了很多,今天,在HTML 4.01中的幾個已經被廢棄,這些元素在HTML5中已經被刪除或重新定義。 為了 更好地處理今天的網際網路應用,HTML5添加

HTML5視訊播放標籤

播放標籤:<video> 一、作用:<video>標籤是用來定義視訊,比如電影片段或其他視訊流 二、屬性: 1、autoplay:值為autoplay,如果出現該屬性,則視訊就就緒後馬上播放 2、controls:值為controls,如果出現該屬

HTML5 & CSS3 初學者指南 – Canvas使用

什麼是 Canvas? HTML5 的 Canvas 元素使用 JavaScript 在網頁上繪製圖像。 畫布是一個矩形區域,你可以控制其每一畫素。 canvas 擁有多種繪製路徑、矩形、圓形、字元以及新增影象的方法。 建立 Canvas 元素 向 HTML5 頁面新增 C