么是canvas?我理解的canvas就是定義在html上的一個(gè)容器,開發(fā)人員可以通過js等工具在這個(gè)容器上進(jìn)行創(chuàng)作,渲染出各種特效。
那么怎么使用canvas:
1.在html中定義一個(gè)canvas容器:
<canvas id="myCanvas" width="500px" height="500px"></canvas>
以上是在html中定義了一個(gè)canvas容器,那么接下來需要使用js工具在這個(gè)容器上進(jìn)行創(chuàng)作。
var c=document.getElementById("myCanvas");
<!--js通過id來找到canvas容器-->
var ctx=c.getContext("2d");
<!--創(chuàng)建一個(gè)context對(duì)象:context對(duì)象是創(chuàng)建一個(gè)HTML5對(duì)象,該對(duì)象可以繪制路徑、矩形、及圖像等-->
創(chuàng)建了context對(duì)象后,我們可以使用context對(duì)象中的各種方法來進(jìn)行創(chuàng)作。
例如:
<canvas id="mycanvas"></canvas>
canvas中fillStyle屬性和fillRect()方法的用法:
<!--通過getElementById來獲取canvas容器,并將其賦值給對(duì)象c-->
var c=document.getElementById("mycanvas");
<!--getContext用于返回一個(gè)對(duì)象-->
var context=c.getContext("2d");
至此創(chuàng)建了一個(gè)畫布,現(xiàn)在可以在上面進(jìn)行繪制了。
context.fillStyle="red";
fillStyle這個(gè)屬性是用于設(shè)置顏色、漸變和模式的
至此填充顏色為紅色,但還是沒有效果,因?yàn)槲覀冃枰o定一個(gè)范圍來展示
這是需要用到方法fillRect(),此方法用于繪制矩形
context.fillRect(0,0,100,100);//x軸起始點(diǎn),y軸起始點(diǎn),寬度,高度
源碼:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>canvas(3)</title>
</head>
<body>
<canvas id="mycanvas"></canvas>
</body>
<script>
var c=document.getElementById("mycanvas");
/*getContext用于返回一個(gè)對(duì)象*/
var context=c.getContext("2d");
/*至此創(chuàng)建了一個(gè)畫布,現(xiàn)在可以在上面進(jìn)行繪制了。*/
context.fillStyle="red";
context.fillRect(20,20,150,100);
</script>
山姆·奧爾伯里( Sam Albury ) 在Unsplash上的照片
編輯:本系列文章不是關(guān)于構(gòu)建 COMMON 網(wǎng)頁。
我必須承認(rèn),我發(fā)現(xiàn) HTML 和 CSS 太復(fù)雜了,尤其是在頁面元素的微調(diào)方面。規(guī)則太多,違反直覺,相互沖突。有時(shí)我們需要使用技巧(!)來實(shí)現(xiàn)簡(jiǎn)單的事情。元素的定義可能分布在許多地方:HTML、CSS(內(nèi)聯(lián)、嵌入和外部文件)和 JavaScript。在級(jí)聯(lián)系統(tǒng)中很容易迷失方向。
并且存在瀏覽器和設(shè)備問題,因?yàn)閷?duì)于某些瀏覽器來說工作正常的東西可能對(duì)另一個(gè)瀏覽器來說表現(xiàn)不佳,甚至在不同設(shè)備上的同一個(gè)瀏覽器上也是如此。
我放棄了處理 HTML 和 CSS;不是因?yàn)樗軓?fù)雜(對(duì)我來說)。我放棄了,因?yàn)?em>它不起作用(應(yīng)該做的)。
有一次我非常沮喪,因?yàn)楫?dāng)頁面在 iPhone 上加載時(shí)(盡管也使用 Chrome),表格中的某些文本占用的空間比我計(jì)劃的要多,從而破壞了布局。我多次修改和更改 CSS 甚至 HTML 都沒有結(jié)果。
你不能責(zé)怪字體,因?yàn)槲沂褂玫氖翘厥庾煮w(不是瀏覽器標(biāo)準(zhǔn)字體),所以每個(gè)設(shè)備都應(yīng)該使用相同的字體。我更深入地使用了自己的字體,使用了不同的名稱(也許 iPhone 緩存了不同的版本)。還是好不了。我制作了屏幕截圖并開始逐個(gè)像素地分析不同的結(jié)果,并意識(shí)到問題出在文本字符之間的空格上。iPhone 上的空間更大。所以,我很快開始編輯letter-spacing CSS 屬性。還是不好!
非 iPhone 設(shè)備上的結(jié)果
iPhone 上的結(jié)果
然后我明白了:不能依靠 HTML 和 CSS 來真正控制網(wǎng)頁的呈現(xiàn)(無處不在)。忘記使用復(fù)雜的 CSS 來設(shè)計(jì)精美的表格:將圖像扔到網(wǎng)頁中!
您無法控制網(wǎng)頁的呈現(xiàn)方式還有另一個(gè)重要原因。即使世界上只有一種設(shè)備和一種瀏覽器,由于可訪問性問題,瀏覽器讓用戶選擇最小字體大小,覆蓋您對(duì)字體大小的定義,非常混亂網(wǎng)頁設(shè)計(jì)。
計(jì)劃字體大小
用戶覆蓋的字體大小
我們可以更進(jìn)一步,瀏覽器可以做的另一件事,不僅是破壞你的設(shè)計(jì),還破壞應(yīng)用程序:翻譯!我有一個(gè)非常糟糕的經(jīng)歷。我不只是在談?wù)摪粹o上的壓倒性和無意義的文本。我說的是谷歌瀏覽器顯示 12 個(gè)菜單按鈕,應(yīng)該只有 6 個(gè)。它們都不起作用。讓我再說一遍:因?yàn)榉g功能在用戶的瀏覽器中處于活動(dòng)狀態(tài),Chrome *發(fā)明* 6 個(gè)菜單按鈕并破壞了我的網(wǎng)絡(luò)應(yīng)用程序!!!
標(biāo)準(zhǔn)菜單
瀏覽器“翻譯”菜單
可能發(fā)生這種情況是因?yàn)轫撁嬖厥怯?JavaScript 而不是 HTML 創(chuàng)建的,所以瀏覽器不夠聰明,無法弄清楚。
瀏覽器希望向其用戶提供翻譯。也許您可以欺騙一個(gè)瀏覽器一段時(shí)間不提供翻譯,但這并不可靠。瀏覽器是不同的并且經(jīng)常變化。
編輯:我再次測(cè)試了該應(yīng)用程序的舊(2017 年)版本。Chrome 順利翻譯了頁面。干杯!
編輯 2:React 的人似乎在 2017 年遇到了類似的問題:
Make React 對(duì)谷歌翻譯中的 DOM 突變具有彈性 #11538
此外,用戶更改的縮放級(jí)別可能會(huì)破壞設(shè)計(jì)。
如果您正在創(chuàng)建一個(gè)簡(jiǎn)單的 (*) 網(wǎng)頁,您可以繼續(xù)使用 HTML 和 CSS,推送圖像而不是使用 HTML 標(biāo)記和 CSS 屬性構(gòu)建表格。因此,您的表格將在任何瀏覽器、任何設(shè)備、任何縮放、任何語言和用戶配置的任何字體大小上保持美觀和良好。此外,只使用舊的、傳統(tǒng)的、通用的東西(小心炒作)。
編輯:關(guān)于簡(jiǎn)單(*):在這種情況下,“簡(jiǎn)單”意味著頁面可以與瀏覽器的流暢布局相匹配。抱歉耽誤了解釋。
但是,如果您正在創(chuàng)建像這個(gè)繪圖工具這樣的復(fù)雜應(yīng)用程序(目前僅適用于 PC),那么我建議您停止使用 HTML 和 CSS,而使用畫布和 JavaScript。
.html 文件
為了讓自己清楚,上面的代碼(.html 文件)包含您需要的所有 HTML 和 CSS。
使用其標(biāo)準(zhǔn)函數(shù)fillText在畫布上打印文本很簡(jiǎn)單;但結(jié)果在視覺上很差。
var canvas=document.createElement("canvas")
var context=canvas.getContext("2d")
document.body.appendChild(canvas)context.font="20px arial"
context.fillText("xyz", 50, 50)
畫布填充文本白底黑字(放大)
直接在網(wǎng)頁上打印文本會(huì)產(chǎn)生更好的結(jié)果。
document.body.style.fontFamily="arial"
document.body.style.fontSize="20px"
document.write("xyz")
HTML 白底黑字(放大)
上面的兩個(gè)圖像對(duì)應(yīng)于在白色背景上用黑色打印“xyz”產(chǎn)生的真實(shí)像素,使用字體Arial和20 像素的字體大小。
當(dāng)我們使用標(biāo)準(zhǔn)功能在畫布上打印時(shí),我們只有灰度像素。
當(dāng)我們直接在頁面上打印文本時(shí),我們有大量不同顏色的像素;雖然在肉眼看來,角色看起來是純黑色(或深灰色)。此外,它們看起來比以前的打印方式要好得多。
業(yè)分析畫布是什么呢?商業(yè)分析畫布是一個(gè)幫助創(chuàng)業(yè)者產(chǎn)生創(chuàng)意、降低猜測(cè)、找到目標(biāo)用戶、合理解決問題的工具。最重要的是,它能夠幫助創(chuàng)業(yè)者了解自己企業(yè)的商業(yè)模式和清楚商業(yè)規(guī)則,并且將商業(yè)模式可視化,能把不同商業(yè)領(lǐng)域用統(tǒng)一的語言進(jìn)行討論。
商業(yè)分析畫布由9個(gè)方格組成,包括:1. 客戶細(xì)分,盡量做到窄而精確,鎖定目標(biāo)客戶;2. 價(jià)值主張,描述創(chuàng)造價(jià)值的服務(wù)或產(chǎn)品;3. 渠道通路,如何傳遞產(chǎn)品或服務(wù),如直銷、分銷等;4. 客戶關(guān)系,公司與客戶之間建立的關(guān)系,可持續(xù)性是關(guān)鍵;5. 收入來源,公司從客戶群體中得到的現(xiàn)金收入,有一次性收入和經(jīng)常性收入;6. 核心資源,即讓商業(yè)模式運(yùn)轉(zhuǎn)不可或缺的最重要的因素,包括人、知識(shí)資產(chǎn)、固定資產(chǎn)等;7. 關(guān)鍵活動(dòng),為了實(shí)現(xiàn)價(jià)值主張公司必須執(zhí)行的事情;8. 重要伙伴,參與商業(yè)模式運(yùn)行所需的重要合作伙伴,包括供應(yīng)商、渠道方等;9. 成本架構(gòu),運(yùn)營商業(yè)模式所需投入的資本,包括市場(chǎng)費(fèi)用、生產(chǎn)成本、營運(yùn)維護(hù)等。
任何企業(yè)提供服務(wù)或生產(chǎn)產(chǎn)品的最終目的就是盈利,讓公司活下下去。這就離不開商業(yè)分析畫布了。產(chǎn)品經(jīng)理通過商業(yè)分析畫布進(jìn)行商業(yè)模式分析,以確保公司產(chǎn)品是否有可持續(xù)的盈利能力。
商業(yè)分析畫布的繪制簡(jiǎn)單易上手,不需要進(jìn)行長時(shí)間的培訓(xùn),只需通過下面幾個(gè)步驟,跟著操作就可以畫出專業(yè)性十足的商業(yè)分析畫布了。
第一步:登陸官網(wǎng)下載“億圖圖示”軟件,或者直接登陸網(wǎng)頁版本在線使用。打開軟件,繪圖走起。
第二步:新建商業(yè)分析畫布。在軟件頁面點(diǎn)擊分類中的“商務(wù)/PPT”,子類中的“分析畫布”,圖形中的商業(yè)分析畫布,接著就可以看到眾多有關(guān)商業(yè)分析畫布的模板。選取一個(gè)需要使用的模板,點(diǎn)擊打開,在預(yù)覽頁面點(diǎn)擊使用,就可以進(jìn)入畫布的編輯頁面了。
第三步:先點(diǎn)擊畫布中的商業(yè)分析畫布,在點(diǎn)擊左側(cè)頁面欄中的符號(hào)庫,拖到適用的圖形到畫布上,系統(tǒng)會(huì)自動(dòng)檢測(cè)對(duì)齊的位置,松開單擊鍵,就可以完成這一步的編輯了。此外,還可以直接導(dǎo)入其他格式的文件,一鍵生成商業(yè)分析畫布。
第四步:雙擊畫布中的文本框,就可以更換商業(yè)分析畫布上文字內(nèi)容了。
第五步:繪制完商業(yè)分析畫布后,可通過點(diǎn)擊左上角的保存、打印、導(dǎo)出等按鈕,對(duì)畫好的商業(yè)分析畫布進(jìn)行儲(chǔ)存或者分享。導(dǎo)出的格式種類還挺多的,包括圖片、PDF、Office、Html、SVG和Visio等。
億圖圖示是一款國內(nèi)的跨平臺(tái)綜合辦公繪圖軟件。在億圖圖示里面,有26000多個(gè)免費(fèi)符號(hào)供繪圖使用,還有260多種繪圖類型,從專業(yè)領(lǐng)域到一般學(xué)習(xí)辦公都涵蓋在內(nèi),包括名片、商業(yè)信息圖、海報(bào)、年報(bào)、決策樹、戴明圓環(huán)、PEST分析、日程、時(shí)間線、漏斗圖、實(shí)驗(yàn)室設(shè)備、流程圖、企業(yè)應(yīng)用等。就算是零基礎(chǔ)也能通過億圖圖示這個(gè)平臺(tái)繪制專業(yè)的圖表,大大提高工作者和學(xué)習(xí)者效率。
1.界面好看,模板庫豐富操作界面直觀明了,好看又色彩搭配和諧,多個(gè)經(jīng)典模板,讓你愛不釋手。
2.操作簡(jiǎn)單,小白無憂只需簡(jiǎn)單的拖拉操作,編輯文字?jǐn)?shù)據(jù)就完成繪圖工作,小白頓時(shí)成專家!
3.使用平臺(tái)多,線上線下都可用無論是Windows、Mac或者Linux系統(tǒng),都支持桌面版和線上版的使用。
4.數(shù)據(jù)可視化將復(fù)雜的數(shù)據(jù)內(nèi)容變成一目了然的可視化圖形,一目了然數(shù)據(jù)所呈現(xiàn)的內(nèi)容。
5.兼容性強(qiáng),支持多種格式支持將圖表轉(zhuǎn)化為圖片、Word、Excel、PowerPoint、PDF等格式,并且還支持Visio格式文件的導(dǎo)入導(dǎo)出。
*請(qǐng)認(rèn)真填寫需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。