1. 程式人生 > >【H5】Canvas 如何自適應螢幕大小

【H5】Canvas 如何自適應螢幕大小

最簡單使用Canvas元素: 
<canvas width="300" height="300"></canvas> 
這樣就創建出一個空白畫布。 

但是這樣創建出的畫布不能隨著瀏覽器視窗大小的改變而動態的改變畫布的大小。而這一點往往又非常重要, 因為我們會經常改變瀏覽器視窗大小,不會一直保持某個固定的大小。 

首先可以先準備一個canvas.css 放到html檔案的同一目錄下,css內容: 
Javascript程式碼  收藏程式碼
  1. * { margin: 0; padding: 0; }  
  2.  html, body { height: 100%; width: 100%; }  
  3.  canvas { display: block; }  


然後在html檔案裡引入canvas.css: 
<link href="canvas.css"rel="stylesheet" type="text/css"> 
這樣保證整個canvas能填充整個瀏覽器視窗 

但是僅僅是這樣canvas的內容並不能隨著視窗大小的改變而改變。 
我們需要在視窗大小改變的同時調整畫板的大小,所以我們需要在js中加入下面這段程式碼: 

Javascript程式碼  收藏程式碼
  1. $(window).resize(resizeCanvas);  
  2.  function resizeCanvas() {  
  3.         canvas.attr("width", $(window).get(0).innerWidth);  
  4.         canvas.attr("height", $(window).get(0).innerHeight);  
  5.         context.fillRect(0, 0, canvas.width(), canvas.height());  
  6.  };  
  7.  resizeCanvas();  


這樣畫布就能根據視窗大小自動調整了,並且不會出現滾動條了。 

注:使用$(window).get(0).innerHeight代替$(window).height()是因為後者無法返回所有瀏覽器視窗的完整高度值。這種方法實際效果並不完美,瀏覽器視窗中canvas元素和滾動條的四周仍存在白色區域 

相關推薦

H5Canvas 如何適應螢幕大小

最簡單使用Canvas元素: <canvas width="300" height="300"></canvas> 這樣就創建出一個空白畫布。 但是這樣創建出的畫布不能隨著瀏覽器視窗大小的改變而動態的改變畫布的大小。而這一點往往又非常重要, 因為我們

html5 Canvas 如何適應螢幕大小

但是這樣創建出的畫布不能隨著瀏覽器視窗大小的改變而動態的改變畫布的大小。而這一點往往又非常重要, 因為我們會經常改變瀏覽器視窗大小,不會一直保持某個固定的大小。  html程式碼 <canva

WebView設定適應螢幕大小

  第一種:     settings.setUseWideViewPort(true);     settings.setLoadWithOverviewMode(true);     第二種:     WebSetting settings = webView.getS

rem實現網頁適應螢幕大小的小結

(1)在chrome瀏覽器的開發過程中,我們會看到network面板中有這兩個數值,分別對應網 絡請求上的標誌線,這兩個時間數值分別代表什麼?(2)我們一再強調將css放在頭部,將js檔案放在尾部,這樣有利於優化頁面的效能,為什麼這種方式能夠優化效能?(3)在用jquery的時候,我們一般都會將函式呼叫寫在r

適應螢幕大小的網頁是怎麼做出來的

隨著3G的普及,越來越多的人使用手機上網。 移動裝置正超過桌面裝置,成為訪問網際網路的最常見終端。於是,網頁設計師不得不面對一個難題:如何才能在不同大小的裝置上呈現同樣的網頁? 手機的螢幕比較小,寬度通常在600畫素以下;PC的螢幕寬度,一般都在1000畫素以上(

android webview適應螢幕大小

前幾天修改C1眼鏡管家V2.0版本的時候,測試出NBD註冊網頁在手機上顯示的時候出現不適應螢幕的情況。 參考網上帖子後,自己寫了一個小的demo試驗了一下,結果問題解決了,在這裡記錄一筆。 demo的佈局檔案 activity_main.xml <

echart 適應螢幕大小

在window.addEventListener事件裡進行resize()方法即可。 window.addEventListener(“resize”, function () {

Div 適應螢幕大小

Background       有時, 我們需要將div或者其他的Element 自適應螢幕,視窗以及瀏覽器 , 這樣會提高頁面美觀,提升使用者體驗, 只是個小問題,但是它用到的知識 還是可以吸收一下。 Knowledge prepared       這裡準備下我們所

iOSUILabel適應高度和自動換行

我們需要根據UILabel中字串的多少來確定label的大小(長度),下面是label自適應大小的方法 //初始化label UILabel *label = [[UILabel alloc] ini

IOS學習筆記為UICollectionView設定適應螢幕寬度以及點選效果

1、設定代理 @property (weak, nonatomic) IBOutlet UICollectionView *gridview; _gridview.dataSource=self; _gridview.delegate=self; 2、實現方法 筆者使用

WPF定義控制元件與樣式(13)-定義窗體Window & 適應內容大小訊息框MessageBox

一.前言   申明:WPF自定義控制元件與樣式是一個系列文章,前後是有些關聯的,但大多是按照由簡到繁的順序逐步釋出的等。   本文主要內容: 自定義Window窗體樣式; 基於自定義窗體實現自定義MessageBox訊息提示框; 二.自定義Window窗體樣式   自定義的Window

超寬的banner條適應瀏覽器大小始終居中的方法

現在越來越多的人使用寬屏的顯示器了,所以傳統的1024或者960的寬度banner條也逐漸的不被客戶端訪客所喜歡,所以現在在網站前端開發中一定要考慮到這一點,但是我們會發現在寬屏瀏覽器下設計出來的banner在傳統的1024的顯示器下瀏覽是會出現橫向滾動橫條。只要在對應標籤

聊技術在Android中實現適應文字大小顯示

本週的聊技術話題和大家說說如何在Android中實現自適應文字大小顯示。 想象一下,在佈局中,通常顯示文字的區域大小是固定的,但是文字長度並不總是固定的。比如列表中的文章標題、介面下方的按鈕文字等等。 為了儘可能讓這些文字可見,傳統的做法是通過文字長度設定文字大小,或者通過android:ellipsize屬

CSS實現適應不同大小螢幕的背景大圖的兩種方法(轉簡書)

CSS實現自適應不同大小螢幕的背景大圖的兩種方法 一張清晰漂亮的背景圖片能給網頁加分不少,設計師也經常會給頁面的背景使用大圖,我們既不想圖片因為不同解析度圖片變形,也不希望當在大屏的情況下,背景有一塊露白,簡而言之,就是實現能自適應螢幕大小又不會變形的背景大圖,而且背景圖片不會隨著

JavaScript真正實現網頁字型大小跟隨螢幕變化而變化

方法一:     使用媒體查詢Media獲取螢幕寬度,根據不同螢幕下情況,給元素賦值不同字型大小, @media screen and (min-width:640px){ .IRYFloat P{ font-size

根據螢幕大小適應字型大小

auto winSize = Director::getInstance()->getWinSize(); float fontSize_title = 35; if (winSize.height <= 960.0f) {

適應網頁裡,字型大小如何適應螢幕

字型大小使用 em, rem 作為單位,然後使用 media query 來調整 html 元素的 font-size 自適應網站 html {font-size: 62.5%!important; /* 10÷16=62.5% */} @media only screen

PopupWindow適應不同大小的以及不同解析度的螢幕

1.情景再現: 在顯示PopupWindow時,如果去修改了系統的字型大小,在不同解析度的裝置上在字型設定成不同的大小時,有時會出現PopupWindow上顯示的文字被切斷的情況。 2.解決方案:加入自適應螢幕的程式碼語句 PopupWindow popupWindow =

android 控制元件的大小計算以及適應螢幕大小

由於android 的螢幕解析度較多導致佈局的時候控制元件有時會被拉伸,導致和原來的效果差別很大 ,這個時候就需要根據不同的螢幕來調節控制元件的大小,例如想要為CheckBox的控制元件根據螢幕設定大小 <LinearLayout android:id

0512日重點:淘寶的H5手機端適應解決方案:Flexible

自動獲取 手機端 issue 解決方案 target 解決 flex get bsp 參考文檔: https://github.com/amfe/lib-flexible https://github.com/amfe/article/issues/17 自我總結:F